今天有很多时间,再与大家分享一个最近使用的到第三方控件,个人认为对设计一些数据库测试脚本非常有用。
这为我们通过Windows系统,制作各种测试脚本提供很好操作平台。DB-API:http://www.python.org/dev/peps/pep-0249/
Download
AsuccessfulinstallationofmxODBCrequiresthesethreesteps:
BeforecontinuingwiththedownloadofmxODBC,firstmakesurethatyouhaveinstalledtheeGenix.commxBaseDistribution,sincetheeGenix.commxODBCDistributionisanadd-ontoourbasesetofPythonextensions.
Thedownloadsbelowdonotcontainanylicensekeys.Youwilleitherhavetoobtainevaluationlicensesorbuyproductionlicensesinordertosuccessfullyinstallandusethepackage.
SelecttherightdownloadforyourplatformandPythonversionandthenheadontotheinstallationinstructionsbelow.
IMPORTANT:
Bydownloading,installingorusingtheeGenixmxODBCDistribution,youagreetothetermsandconditionssetforthintheeGenix.comCommercialLicenseAgreement1.2.0.
Redistributionofthesefilesisnotallowed.PleasecontacttheeGenixSalesTeamfordetailsaboutredistributionpossibilitiesandterms.
下载控件清单:
egenix-mx-base-3.0.0.win32-py2.5.msegenix-mx-experimental-3.0.0.win32-py2.5.msi
egenix-mxodbc-3.0.1.win32-py2.5.msi
注册License
eGenix.comCommercialLicenseAgreement1.2.0,注意填好后,Liscense会被发送到邮箱
Lincense拷贝的路径,本机地址:C:/Python25/Lib/site-packages/mx/ODBC
如果没有注册Liscense,会有如下提示:
以下提供一段测试程序,该段程序为清除Db2中的两表数据:
#-*-coding:cp936-*-importmx.ODBC
importmx.ODBC.Windows
IDLE中提示:
Traceback(mostrecentcalllast):
File"E: tpSearch_Table.py",line3,inmodule>importmx.ODBC.Windows
File"mxODBCWindows__init__.py",line9,inmodule>ImportError:initializationofmodulemxODBCfailed(class'mx.ODBC.Windows.LicenseError'>:mx.ODBC.licensecouldnotbeloaded;pleasevisitthehttp://www.egenix.com/web-sitetoobtainalicensefileorwritetolicenses@egenix.comforinformation.)
提取有效部分:licensecouldnotbeloaded;pleasevisitthehttp://www.egenix.com/web-sitetoobtainalicensefileorwritetolicenses@egenix.comforinformation
#-*-coding:cp936-*-importmx.ODBC
importmx.ODBC.Windows
importsys,os,time
classdb2_test():
def__init__(self,tablename1,tablename2):
self.tablename1=tablename1
self.tablename2=tablename2
printself.tablename1,self.tablename2
#清除任意制定表数据deftruncate_table(self):
db=mx.ODBC.Windows.DriverConnect('DSN=infospy')
cursor=db.cursor()
cursor.execute("ALTERTABLE%sACTIVATENOTLOGGEDINITiALLYWITHEMPTYTABLE;"%(self.tablename1))
cursor.execute("ALTERTABLE%sACTIVATENOTLOGGEDINITiALLYWITHEMPTYTABLE;"%(self.tablename2))
cursor.execute("Commit;")
cursor.close()
db.close()
print"表%s;%s;清除数据成功!"%(self.tablename1,self.tablename2)
if__name__=="__main__":
tablename1="test_table_1"tablename2="test_table_2"db2=db2_test(tablename1,tablename2)
db2.truncate_table()
time.sleep(3)
sys.exit(1)
db=mx.ODBC.Windows.DriverConnect('DSN=infospy') DSN为在WindowsODBC中配置的数据源名
有关ODBC配置,此贴略。由于时间关系,详细的API请查询文章中所给的地址。