python 對ACCESS資料庫操作封裝模組

2021-07-09 07:03:40 字數 2088 閱讀 2560



#-*-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...