[数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序

今天有很多时间,再与大家分享一个最近使用的到第三方控件,个人认为对设计一些数据库测试脚本非常有用。

首先,请访问这个地址:http://www.egenix.com/products/python/mxODBC/,此控件是一个ODBC的通用插件。

这为我们通过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.comCommercialLicenseAgreement 1.2.0 .
Redistributionofthesefilesisnotallowed.PleasecontacttheeGenixSalesTeamfordetailsaboutredistributionpossibilitiesandterms.

下载控件清单:

egenix-mx-base-3.0.0.win32-py2.5.ms

egenix-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-*-
import mx.ODBC
import mx.ODBC.Windows

IDLE中提示:
Traceback(mostrecentcalllast):
File
" E: tpSearch_Table.py " ,line 3 , in < module >
import mx.ODBC.Windows
File
" mxODBCWindows__init__.py " ,line 9 , in < module >
ImportError:initializationofmodulemxODBCfailed(
< class ' mx.ODBC.Windows.LicenseError ' > :mx.ODBC.licensecould not beloaded;pleasevisitthehttp: // www.egenix.com / web - sitetoobtainalicensefile or [email protected] for information.)

提取有效部分:licensecould
not beloaded;pleasevisitthehttp: // www.egenix.com / web - sitetoobtainalicensefile or [email protected] for information
# -*-coding:cp936-*-
import mx.ODBC
import mx.ODBC.Windows
import sys,os,time

class db2_test():

def __init__ (self,tablename1,tablename2):
self.tablename1
= tablename1
self.tablename2
= tablename2
print self.tablename1,self.tablename2

# 清除任意制定表数据
def truncate_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请查询文章中所给的地址。

你可能感兴趣的:(sql,sql,mysql,server,python,db2)