Python操作Access数据库步骤

上传人:ji****72 文档编号:37525782 上传时间:2018-04-17 格式:DOCX 页数:109 大小:150.91KB
返回 下载 相关 举报
Python操作Access数据库步骤_第1页
第1页 / 共109页
Python操作Access数据库步骤_第2页
第2页 / 共109页
Python操作Access数据库步骤_第3页
第3页 / 共109页
Python操作Access数据库步骤_第4页
第4页 / 共109页
Python操作Access数据库步骤_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《Python操作Access数据库步骤》由会员分享,可在线阅读,更多相关《Python操作Access数据库步骤(109页珍藏版)》请在金锄头文库上搜索。

1、PythonPython 操作操作 AccessAccess 数据库步骤之数据库步骤之 1 1、建立数据库连接、建立数据库连接1. import win32com.client 2. conn = win32com.client.Dispatch(rADODB.Connection) 3. DSN = PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb; 4. conn.Open(DSN) PythonPython 操作操作 AccessAccess 数据库步骤之数据库步骤之 2 2、打开一个记录集、打开一个记录集 1. rs =

2、win32com.client.Dispatch(rADODB.Recordset) 2. rs_name = MyRecordset#表名 3. rs.Open( + rs_name + , conn, 1, 3) PythonPython 操作操作 AccessAccess 数据库步骤之数据库步骤之 3 3、对记录集操作、对记录集操作 1. rs.AddNew() 2. rs.Fields.Item(1).Value = data 3. rs.Update() PythonPython 操作操作 AccessAccess 数据库步骤之数据库步骤之 4 4、用、用 SQLSQL 来插入或更新

3、数据来插入或更新数据 1. conn = win32com.client.Dispatch(rADODB.Connection) 2. DSN = PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb; 3. sql_statement = “Insert INTO Table_Name (Field_1, Field_2) VALUES (data1, data2)“ 4. conn.Open(DSN) 5. conn.Execute(sql_statement) 6. conn.Close() PythonPython 操作操作

4、AccessAccess 数据库步骤之数据库步骤之 5 5、遍历记录、遍历记录 1. rs.MoveFirst() 2. count = 0 3. while 1: 4. if rs.EOF: 5. break 6. else: 7. countcount = count + 1 8. rs.MoveNext() 注意:如果一个记录是空的,那么将指针移动到第一个记录将导致一个错误,因为此时 recordcount 是无效的。解决的方法是:打开一个记录集之前,先将 Cursorlocation 设置为 3,然后再打开记录集,此时recordcount 将是有效的。例如:1. rs.Cursorl

5、ocation = 3 # dont use parenthesis here 2. rs.Open(Select * FROM Table_Name, conn) # be sure conn is open 3. rs.RecordCount # no parenthesis here either Python 连接连接 Access 和读取和读取 Access 数据库的例子数据库的例子其实这个 Python 连接 Access 和读取 Access 数据库的例子是写给自己看的,网上已经有 Python 读取Access 的例子了,我这个也是参考以上制作的.而这个例子应该是只能在 win

6、dows 使用吧!而且需要用到 win32com.client 这个库,而我在引用win32com.client 时出错了,看来不是 python 常备的库,看来需要安装的!在参考了网上的 How can I import win32com.client to my app ? 之后,才知道怎样安装win32com.client,以下是这篇文章的网址http:/ win32com.client 的网址: https:/ -*- coding: gb2312 -*- 2.import win32com.client 3.import os, sys, string 4.conn = win32c

7、om.client.Dispatch(rADODB.Connection) 5.DSN = PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=SpiderResult.mdb; 6.conn.Open(DSN) 7.8.print “connect” 9.10. rs = win32com.client.Dispatch(rADODB.Recordset) 11. #rs_name = Content#表名 12. #rs.Open( + rs_name + , conn, 1, 3) 13. # Content 这个表是我用火车头采集当当网数据的数据库

8、 14.15. rs.Open(Select top * FROM Content where, conn,1, 3) 16.17. # 注意:如果一个记录是空的,将导致一个错误,所以我加了一句判断有没有记录,防止错误. 18. if rs.recordcount=0: 19. sys.exit() 20.21. rs.MoveFirst() 22. print rs.recordcount 23.24. while not rs.EOF: 25. print rs.Fields.Item(3).Value 26. print “-” 27. rs.MoveNext() 28.29. prin

9、t “Record Count: “,rs.recordcount 30.31. rs.Close() python+AO 脚本练习 2010-04-23 20:12 中国广州天河 开始练习做 python2.4.4+arcgis arcobject9.2 的脚本,下面是一个代码示例,获得 Access(.mdb)文件下所有的 FeatureClass 但不包含位于 FeatureDataset 中的! 程序代码如下: # -*- coding: cp936 -*- #http:/ #http:/ 2010-04-23 星期五 开始开发 import sys,os.path from comt

10、ypes.client import CreateObjectfrom standflds import fcotherNames as standflds_fcotherNames # 别名定义 from cosole_color import * # 输出颜色 printWait(Please waitting.)def GetLibPath(): import _winreg keyESRI = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, “SOFTWAREESRIArcGIS“) return _winreg.QueryValueEx(key

11、ESRI, “InstallDir“)0 + “com“ # def GetModule(sModuleName): from comtypes.client import GetModule sLibPath = GetLibPath() GetModule(sLibPath + sModuleName) # def GetLicenseState(pInit,eProdect): licenseStatus = pInit.IsProductCodeAvailable(eProduct) if licenseStatus=esriSystem.esriLicenseAvailable: l

12、icenseStatus = pInit.Initialize(eProduct) #print(licenseStatus=+str(licenseStatus) to_b_checkout = licenseStatus = esriSystem.esriLicenseCheckedOutif to_b_checkout:printResult(通过产品验证!) return (licenseStatus = esriSystem.esriLicenseCheckedOut) else:printError(无法通过验证!);return False # please see:C:Prog

13、ram FilesArcGIScom GetModule(“esriSystem.olb“) GetModule(“esriGeoDatabase.olb“) GetModule(“esriDataSourcesGDB.olb“) import comtypes.gen.esriSystem as esriSystem import comtypes.gen.esriGeoDatabase as esriGeoDatabaseimport comtypes.gen.esriDataSourcesGDB as esriDataSourcesGDBpInit = CreateObject(esri

14、System.AoInitialize, interface=esriSystem.IAoInitialize) eProduct = esriSystem.esriLicenseProductCodeEngine GetLicenseState(pInit,eProduct)def ChangeFeatClssAliasName(): “历遍一个 mdb(Access)下相关 FeatureCalss “ mdbPath=sys.argv1printResult(选择数据库n%sn%s % os.path.split(mdbPath) pWSFact = CreateObject(esriD

15、ataSourcesGDB.AccessWorkspaceFactory, interface=esriGeoDatabase.IWorkspaceFactory) pWor = pWSFact.OpenFromFile(mdbPath, 0) # IWorkspace pEnumDatasetName = pWor.DatasetNames(esriGeoDatabase.esriDTFeatureClass ) # IEnumDatasetName pEnumDatasetName.Reset() a = pEnumDatasetName.Next() # IDatasetName outputfmt = “%10s | %5s | %15s | %40s |“ printResult(outputfmt %(Name,Type,FeatureType,Category) while a: b = a.QueryInterface(esriGeoD

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号