UML软件工程组织

 

 

一个python ODBC数据源插件
 
2007-11-19 作者: T.Sing 来源: T.Sing'Blog
 

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

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

这为我们通过Windows系统,制作各种测试脚本提供很好操作平台。DB-API:http://www.python.org/dev/peps/pep-0249/

Download
A successful installation of mxODBC requires these three steps:

Before continuing with the download of mxODBC, first make sure that you have installed the 
eGenix.com mx Base Distribution, since the eGenix.com mxODBC Distribution is an add-on to our base set of Python extensions. 
The downloads below do not contain any license keys. You will either have to obtain evaluation
 licenses or buy production licenses in order to successfully install and use the package. 
Select the right download for your platform and Python version and then head on to the 
installation instructions below. 
IMPORTANT: 
By downloading, installing or using the eGenix mxODBC Distribution, you agree to the terms 
and conditions set forth in the eGenix.com Commercial License Agreement 1.2.0.
Redistribution of these files is not allowed. Please contact the eGenix Sales Team for 
details about redistribution possibilities and terms.

下载控件清单:

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.com Commercial License Agreement 1.2.0,注意填好后,Liscense会被发送到邮箱

Lincense拷贝的路径,本机地址:C:\Python25\Lib\site-packages\mx\ODBC

如果没有注册Liscense,会有如下提示:

以下提供一段测试程序,该段程序为清除Db2中的两表数据:

# -*- coding: cp936 -*-
import mx.ODBC
import mx.ODBC.Windows

IDLE中提示:
Traceback (most recent call last):
  File 
"E: tpSearch_Table.py", line 3, in <module>
    
import mx.ODBC.Windows
  File 
"mxODBCWindows__init__.py", line 9, in <module>
ImportError: initialization of module mxODBC failed (<
class 'mx.ODBC.Windows.LicenseError'>
:mx.ODBC.license could 
not be loaded; please visit 
the http://www.egenix.com/ web-site to obtain a license file 
or write to licenses@egenix.com for information.)

提取有效部分:license could 
not be loaded; please visit the http://www.egenix.com/ web-site to obtain a license file or write to licenses@egenix.com 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(
"ALTER TABLE %s ACTIVATE NOT LOGGED INITiALLY WITH EMPTY TABLE;" % 
(self.tablename1))
        cursor.execute(
"ALTER TABLE %s ACTIVATE NOT LOGGED INITiALLY WITH EMPTY TABLE;" % 
(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请查询文章中所给的地址。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号