源代码:
import win32com.client
def conn_mysql():
#DSN = r'Provider=WinCCOLEDBProvider.1;Catalog=CC_test2_20_03_31_16_25_08R;Data Source=ZJF02\WINCC;UID=sa;PWD=root'
DSN= r"DRIVER={MySQL ODBC 8.0 Unicode Driver}; SERVER=localhost; DATABASE=test; USER=root; PASSWORD=root;OPTION=3"
#select
Rs = win32com.client.Dispatch(r"ADODB.Recordset")
Rs.ActiveConnection = DSN
Rs.Source = r"select * from testtable"
Rs.CursorType = 0
Rs.CursorLocation = 2
Rs.LockType = 1
Rs.Open()
numRows = 0
Rs.MoveFirst()
while not Rs.EOF:
# print r'id:',Rs.Fields.Item("id").Value.encode('gbk')
# if Rs.Fields.Item("name").Value != None:
# print r' name:',Rs.Fields.Item("name").Value.encode('gbk')
# numRows+=1
# Rs.MoveNext()
# print 'Total Rows:',numRows
a = str(Rs.Fields.Item(0))+str(Rs.Fields.Item(1))+str(Rs.Fields.Item(2))+'\n'
# with open('a.txt', 'a', encoding='utf-8') as f:
# f.write(a)
print(a)
Rs.MoveNext()
def conn_wincc():
runTime = win32com.client.Dispatch(r'CCHMIRuntime.HMIRuntime')
catalog = runTime.Tags("@DatasourceNameRT").Read() # 获取数据库名称
# dataSource = runTime.Tags("@LocalMachineName").Read() # 获取计算机名称
return catalog
def test():
DSN = r'Provider=WinCCOLEDBProvider.1;Catalog=CC_data_tes_20_04_22_17_20_56R;Data Source=ZJF02\WINCC;UID=administrator;PWD=kobe0820'
Rs = win32com.client.Dispatch(r"ADODB.Recordset")
Rs.ActiveConnection = DSN
#Rs.Source = r"select * from testtable"
Rs.Source = r"Tag:R,('pva\t1'),'2020-03-31 10:36:30.870','2020-07-01 04:21:46.990'"
Rs.CursorType = 0
Rs.CursorLocation = 3
Rs.LockType = 1
Rs.Open()
numRows = 0
Rs.MoveFirst()
#print(Rs.FieldCount)
while not Rs.EOF:
print(Rs.Fields.Item(0))
Rs.MoveNext()
if __name__ == '__main__':
#print(conn_wincc())
#conn_mysql()
test()