#-*-coding:utf-8-*-
##########################
## by adengou 2016-01-02
# programe:python3.4.4
###########################
import os
import json
import win32com.client
#-------------access資料模組--------------
class access_model:
def __init__(self,dataurl):
self.dataurl =dataurl
###定義conn
def db_conn(self):
conn = win32com.client.dispatch(r'adodb.connection')
dns = 'provider=microsoft.jet.oledb.4.0;data source='+self.dataurl
conn.open(dns)
return conn
####定義rs
def db_rs(self):
rs = win32com.client.dispatch(r'adodb.recordset')
rs.cursortype = 1;
rs.cursorlocation = 3 # don't use parenthesis here
rs.locktype = 3;#可讀可寫模式
return rs
####關閉資料庫
def db_close(self):
conn=self.db_conn()
conn.close()
####獲取資料庫所有記錄集
def db_query(self,sql):
conn=self.db_conn()
rs=self.db_rs()
rs.open(sql,conn)
#print (rs.recordcount)
datastr = ""
arrdata =
rs.movefirst()
while (rs.eof==false and rs.bof==false):
i= 0
rs.close()
self.db_close()
return count
####示例
def forexample():
try:
dataurl =os.getcwd()+"\\opp.mdb"
data = access_model(dataurl)
sql ="select * from addresslist order by id asc"
datarecordset =data.db_query(sql)
print(data.db_recordcount(sql))
#print(len(datarecordset))
for item in datarecordset:
a =eval("("+item+")")#eval解析json資料
print (a['department'])#department為欄位名
###sql="update addresslist set name='name' where id=2";
if(data.db_modi(sql)):
print("修改完成!")
else:
print("修改失敗")
sql="delete * from addresslist where id=2"
if(data.db_modi(sql)):
print("刪除成功!")
else:
print("刪除失敗")
except (typeerror,valueerror) as e: #將異常物件輸出
print("error:"+str(e))
forexample()
ps:程式還有不少bug,有時間再改進
python對access資料庫的操作
15九月 2010 usr bin python write by script hkcat.org 快速對mdb執行sql操作 coding utf 8 import os import random import win32com.client import time import shutil...
Python操作Access資料庫
常用方法是使用pyodbc庫。import pyodbc dbfile r h xiaonei xnzy.accdb 資料庫檔案 conn pyodbc.connect r driver dbq dbfile uid pwd charset utf 8 用charset設定字符集 cursor co...
Python訪問Access資料庫
內容 利用win32com.client 模組的com元件訪問功能,通過adodb訪問access的mdb檔案 獲取connection物件 conn win32com.client.dispatch adodb.connection 設定connectionstring conn.connecti...