import MySQLdb
import win32com.client
import os, sys
os.chdir(sys.path[0])
con = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=yk.mdb;'
sql_statement = "Insert INTO users(uid,name,pass,email) VALUES('%s','%s','%s','%s')"
con.Open(DSN)
sql=MySQLdb.Connect("127.0.0.1","root","123","abc",charset='gbk')
conn=sql.cursor()
conn.execute("SET NAMES gbk");
sql.commit();
conn.execute("select uid,name,pass,mail from users")
for i in conn.fetchall():
#try:
print(i[0],i[1],i[2],i[3])
con.Execute(sql_statement % (i[0],i[1],i[2],i[3]))
#except Exception as t:print(t)
con.Close()
工作需要,所以随手写一个,以后用得上的时候直接看。
注意:mdb中不能有user,password等表明,字段字眼否则莫名其妙错。
读取access:
# -*- coding: gb2312 -*-
import win32com.client
import os, sys, string
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=yk.mdb;'
conn.Open(DSN)
print ("connect...")
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs.Open('Select * FROM users', conn,1, 3)
# 注意:如果一个记录是空的,将导致一个错误,所以我加了一句判断有没有记录,防止错误.
if rs.recordcount==0:
sys.exit()
rs.MoveFirst()
print (rs.recordcount)
while not rs.EOF:
print(rs.Fields.Item(0).Value,rs.Fields.Item(1).Value,rs.Fields.Item(2).Value,rs.Fields.Item(3).Value)
print ("-------------------------------------")
rs.MoveNext()
print ("Record Count: ",rs.recordcount)
rs.Close()
写access:
# -*- coding: gb2312 -*-
import win32com.client
import os, sys, string
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=yk.mdb;'
sql_statement = "Insert INTO users(id,name,pass,email) VALUES('id','data1','data2','data3')"
conn.Open(DSN)
conn.Execute(sql_statement)
conn.Close()