用Python实现数据库编程Word格式文档下载.docx
- 文档编号:7061487
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:4
- 大小:19.50KB
用Python实现数据库编程Word格式文档下载.docx
《用Python实现数据库编程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用Python实现数据库编程Word格式文档下载.docx(4页珍藏版)》请在冰点文库上搜索。
1.安装python软件包:
/download/ 2.安装MarkHammond的最新版本的pythonwin32扩展-PythonWin:
/crew/mhammond/ 3.安装必要的ODBC驱动程序,用ODBC管理器为你的数据库配置数据源等参数 你的应用程序将需要事先导入两个模块:
-支持各种各样的SQL数据类型,例如:
日期-dates –编译产生的ODBC接口 下面有一个例子:
importdbi,odbc #导入ODBC模块 importtime #标准时间模块 dbc=( #打开一个数据库连接 ’sample/monty/spam’#‘数据源/用户名/密码’ ) crsr=()#产生一个cursor ( #执行SQL语言 \ SELECTcountry_id,name,insert_change_date FROMcountry ORDERBYname \ ) print‘Columndescriptions:
’#显示行描述 forcolin:
print‘‘,col result=() #一次取出所有的结果 print‘\\nFirstresultrow:
\\n‘,result[0]#显示结果的第一行 print‘\\nDateconversions:
’#看看dbiDate对象如何?
date=result[0][-1] fmt=‘%-25s%-20s’ printfmt%(‘standardstring:
’,str(date)) printfmt%(‘secondssinceepoch:
’,float(date)) timeTuple=(date) printfmt%(‘timetuple:
’,timeTuple) printfmt%(‘userdefined:
’,(‘%d%B%Y’,timeTuple)) 下面是结果:
-------------------------------输出(output)---------------------------- Columndescriptions:
(‘country_id’,‘NUMBER’,12,10,10,0,0) (‘name’,‘STRING’,45,45,0,0,0) (‘insert_change_date’,‘DATE’,19,19,0,0,1) Firstresultrow:
(24L,‘ARGENTINA’,) Dateconversions:
standardstring:
FriDec1901:
51:
531997 secondssinceepoch:
timetuple:
(1997,12,19,1,51,53,4,353,0) userdefined:
19December1997 大家也可以去/windows/win32/看看,那儿有两个HirendraHindocha写的例子,还不错. 注意,这个例子中,结果值被转化为Python对象了.时间被转化为一个dbiDate对象.这里会有一点限制,因为dbiDate只能表示UNIX时间(1Jan197000:
00:
00GMT)之后的时间.如果你想获得一个更早的时间,可能会出现乱码甚至引起系统崩溃.*_* 方法三:
使用calldll模块 (Usingthismodule,youcanuseODBCAPIdirectly.Butnowthepythonversionis,andIdon’tknowifotherversioniscompatiblewithit.老巫:
-) SamRushing的calldll模块可以让Python调用任何动态连接库里面的任何函数,厉害吧?
哈.其实,你能够通过直接调用里面的函数操作提供了一个包装模块,就是来做这个事情的.也有代码来管理数据源,安装ODBC,实现和维护数据库引擎(MicrosoftAccess).在那些演示和例子代码中,还有一些让人侧目的好东东,比如,有一个信息循环和窗口过程的Python函数!
[你可以到Sam’sPythonSoftware去找到calldll的相关连接,那儿还有其他好多有趣的东西]
下面是安装CALLDLL包的步骤:
1.安装PYTHON软件包(到现在为止最多支持版本) 2.下载:
ftp:
///pub/python/python-ext/ 3.在LIB路径下面创建一个新路径比如说:
c:
\\ProgramFiles\\Python\\lib\\caldll\\ 4.在原目录下解压 5.移动calldll\\lib\\中所有的文件到上面一个父目录(calldll)里面,删除子目录(lib) 6.在CALL目录里面生成一个file__init__.py文件,象这样:
#Filetoallowthisdirectorytobetreatedasapython package. 7.编辑calldll\\:
在\和\里面,改变\为\ 下面是一个怎么使用calldll的例子:
fromcalldllimportodbc dbc=().connection()#createconnection (‘sample’,‘monty’,‘spam’)#connecttodb #alternatively,usefullconnectstring:
#_connect(‘DSN=sample;
UID=monty;
PWD=spam’) print‘DBMS:
%s%s\\n’%( #showDBinformation _info(_DBMS_NAME), _info(_DBMS_VER) ) result=( #executequery&
returnresults \ SELECTcountry_id,name,insert_change_date FROMcountry ORDERBYname \ ) print‘Columndescriptions:
’#showcolumndescriptions forcolinresult[0]:
print‘‘,col print‘\\nFirstresultrow:
\\n‘,result[1]#showfirstresultrow -------------------------------output(输出)-------------------------------- DBMS:
Oracle Columndescriptions:
(‘COUNTRY_ID’,3,10,0,0) (‘NAME’,12,45,0,0) (‘INSERT_CHANGE_DATE’,11,19,0,1) Firstresultrow:
[‘24’,‘ARGENTINA’,‘1997-12-1901:
53’] 方法四:
使用ActiveXDataObject(ADO) 现在给出一个通过Microsoft’sActiveXDataObjects(ADO)来连接MSAccess2000数据库的实例.使用ADO有以下几个好处:
首先,与DAO相比,它能更快地连接数据库;
其次,对于其他各种数据库(SQLServer,Oracle,MySQL,etc.)来说,ADO都是非常有效而方便的;
再有,它能用于XML和文件和几乎其他所有数据,因此微软也将支持它比DAO久一些. 第一件事是运行makepy.尽管这不是必须的,但是它对于提高速度有帮助的.而且在PYTHONWIN里面运行它非常简单:
找到工具栏上Toolsà
COMMakePyutilities,你会看到弹出一个SelectLibrary的对话框,在列表中选择’MicrosoftActiveXDataObjectsLibrary‘(或者是你所有的版本). 然后你需要一个数据源名DataSourceName[DSN]和一个连接对象.[我比较喜欢使用DSN-Less连接字符串(与系统数据源名相比,它更能提高性能且优化代码)]就MSAccess来说,你只需要复制下面的DSN即可.对于其他数据库,或者象密码设置这些高级的功能来说,你需要去[ControlPanel控制面板|管理工具AdministrativeTools|数据源DataSources(ODBC)].在那里,你可以设置一个系统数据源DSN.你能够用它作为一个系统数据源名,或者复制它到一个字符串里面,来产生一个DSN-Less的连接字符串.你可以在网上搜索DSN-Less连接字符串的相关资料.好了,这里有一些不同数据库的DSN-Less连接字符串的例子:
SQLServer,Access,FoxPro,Oracle,Oracle,Access,SQLServer,最后是MySQL. >
>
import >
conn=(r’’) >
DSN=‘PROVIDER=;
DATASOURCE=C:
/;
’ >
(DSN) 经过上面的设置之后,就可以直接连接数据库了:
首要的任务是打开一个数据集/数据表 >
rs=(r’’) >
rs_name=‘MyRecordset’ >
(‘[‘+rs_name+‘]’,conn,1,3) [1和3是常数.代表adOpenKeyset和adLockOptimistic.我用它作为默认值,如果你的情况不同的话,或许你应该改变一下.进一步的话题请参考ADO相关材料.] 打开数据表后,你可以检查域名和字段名等等 >
flds_dict={} >
forxinrange():
... flds_dict[x]=(x).Name 字段类型和长度被这样返回A:
>
(1).Type 202#202isatextfield >
(1).DefinedSize 50#50Characters 现在开始对数据集进行操作.可以使用SQL语句INSERTINTO或者AddNew()和Update() >
() >
(1).Value=‘data’ >
() 这些值也能够被返回:
x=
(1).Value >
printx ’data’ 因此如果你想增加一条新的记录,不必查看数据库就知道什么number和AutoNumber字段已经产生了 >
x=(‘Auto_Number_Field_Name’).Value #xcontainstheAutoNumber >
(‘Field_Name’).Value=‘data’ >
() 使用ADO,你也能得到数据库里面所有表名的列表:
oCat=(r’’) >
=conn >
oTab= >
forxinoTab:
... if==‘TABLE’:
... print 关闭连接.注意这里C是大写,然而关闭文件连接是小写的c. >
()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 实现 数据库 编程