API描述表
bool DbtPy.active(IFXConnection connection)
描述
参数
返回值
示例
参考代码:test_002_active.py
bool = DbtPy.active(conn)if bool :print("连接状态正常")else :print("连接状态异常")
mixed DbtPy.autocommit ( IFXConnection connection [, bool value] )
描述
参数
返回值
非指定参数value时:
指定参数value时:
示例
参考代码:test_006_autocommit.py
print("默认自动提交状态:" + str(commit))commit = DbtPy.autocommit(conn, DbtPy.SQL_AUTOCOMMIT_OFF)if commit :print("设置自动提交状态为OFF成功")else :print("设置自动提交状态为OFF失败")commit = DbtPy.autocommit(conn)print("获取当前自动提交状态:" + str(commit))
bool DbtPy.bind_param (IFXStatement stmt, int parameter-number, string variable [, int parameter-type [, int data-type [, int precision [, int scale [, int size]]]]] )
描述
参数
stmt - 从DbtPy.prepare()返回的预编译语句
parameter-number - 从序号1开始的参数
variable - 绑定到parameter-number指定的参数的Python变量
parameter-type - 指定参数输入、输出的常量:
data-type - 指定Python变量应该绑定为的SQL数据类型常量,仅接受以下值:
precision - 变量的精度
scale - 变量的精度
返回值
示例
参考代码: test_026_prepare.py
statment = DbtPy.prepare(conn, "select tabid, tabname from systables where tabid = ? and tabname = ?")DbtPy.bind_param(statment, 1, 1, DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_INTEGER)DbtPy.bind_param(statment, 2, 'systables', DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_VARCHAR)DbtPy.execute(statment)result = DbtPy.fetch_tuple(statment)# print(result)print("Tabid : {}" . format(str(result[0])))print("Tabname : {}" . format(str(result[1])))
( IFXStatement [, …] ) DbtPy.callproc( IFXConnection connection, string procname [, parameters] )
描述
参数
返回值
示例
参考代码: test_025_callproc.py
statment, ptabid, ptabname = DbtPy.callproc(conn, "proc1", (ptabid, ptabname,))result = DbtPy.fetch_both(statment)if result :print(result)print(result[0])
注意:看起来out/inout参数存在问题
object DbtPy.client_info ( IFXConnection connection )
描述
参数
返回值
成功,对象包括如下信息:
DATA_SOURCE_NAME - 用于创建到数据库的当前连接的数据源名称(DSN)
DRIVER_NAME - 实现调用级别接口(CLI)规范的库的名称
DRIVER_ODBC_VER - ODBC驱动程序的版本。这将返回一个字符串“MM.mm”,其中MM是主要版本,mm是次要版本。
DRIVER_VER - 客户端的版本,以字符串“MM.mm.uuuu”的形式。MM是主版本,mm是次版本,uuuu是更新版本。例如,“08.02.0001”表示主版本8,次版本2,更新1。
ODBC_SQL_CONFORMANCE - 客户机支持三种级别的ODBC SQL语法
ODBC_VER - ODBC驱动程序管理器支持的ODBC版本。以字符串“MM.mm.rrrr”的形式。MM是主版本,mm是次版本,rrrr是更新版本。客户端总是返回"03.01.0000"
不成功,False
示例
参考代码:test_004_client_info.py
client = DbtPy.client_info(conn)if client :print("客户端信息:")print("DATA_SOURCE_NAME: \"%s\"" % client.DATA_SOURCE_NAME)print("DRIVER_NAME: \"%s\"" % client.DRIVER_NAME)print("DRIVER_VER: \"%s\"" % client.DRIVER_VER)print("DRIVER_ODBC_VER: \"%s\"" % client.DRIVER_ODBC_VER)print("ODBC_VER: \"%s\"" % client.ODBC_VER)print("ODBC_SQL_CONFORMANCE: \"%s\"" % client.ODBC_SQL_CONFORMANCE)DbtPy.close(conn)else:print("客户端信息错误.")
bool DbtPy.close ( IFXConnection connection )
描述
参数
返回值
示例
参考代码:test_003_close.py
bool = DbtPy.close(conn)if bool :print("关闭数据库连接正常")else :print("关闭数据库连接异常")
IFXStatement DbtPy.column_privileges ( IFXConnection connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )
描述
参数
返回值
示例
参考代码:test_012_column_privileges.py
statment = DbtPy.column_privileges(conn, None, None, 'tab1', None)dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("TABLE_CAT :{}" .format(dataRecord['TABLE_CAT']))print("TABLE_SCHEM : {}" .format(dataRecord['TABLE_SCHEM']))print("TABLE_NAME : {}" .format(dataRecord['TABLE_NAME']))print("COLUMN_NAME : {}" .format(dataRecord['COLUMN_NAME']))print("GRANTOR : {}" .format(dataRecord['GRANTOR']))print("GRANTEE : {}" .format(dataRecord['GRANTEE']))print("PRIVILEGE : {}" .format(dataRecord['PRIVILEGE']))print("IS_GRANTABLE: {}" .format(dataRecord['IS_GRANTABLE']))# print(dataRecord)dataRecord = DbtPy.fetch_assoc(statment)
IFXStatement DbtPy.columns ( IFXConnection connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )
描述
参数
返回值
示例
参考代码:test_011_columns.py
statment = DbtPy.columns(conn, None, None, "tab1", "col1")dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("TABLE_CAT :{}" .format(dataRecord['TABLE_CAT']))print("TABLE_SCHEM : {}" .format(dataRecord['TABLE_SCHEM']))print("TABLE_NAME : {}" .format(dataRecord['TABLE_NAME']))print("COLUMN_NAME : {}" .format(dataRecord['COLUMN_NAME']))print("DATA_TYPE : {}" .format(dataRecord['DATA_TYPE']))print("TYPE_NAME : {}" .format(dataRecord['TYPE_NAME']))print("COLUMN_SIZE : {}" .format(dataRecord['COLUMN_SIZE']))print("BUFFER_LENGTH: {}" .format(dataRecord['BUFFER_LENGTH']))print("DECIMAL_DIGITS: {}" .format(dataRecord['DECIMAL_DIGITS']))print("NUM_PREC_RADIX: {}" .format(dataRecord['NUM_PREC_RADIX']))print("NULLABLE : {}" .format(dataRecord['NULLABLE']))print("REMARKS : {}" .format(dataRecord['REMARKS']))print("COLUMN_DEF : {}" .format(dataRecord['COLUMN_DEF']))print("SQL_DATA_TYPE: {}" .format(dataRecord['SQL_DATA_TYPE']))print("SQL_DATETIME_SUB: {}" .format(dataRecord['SQL_DATETIME_SUB']))print("CHAR_OCTET_LENGTH: {}" .format(dataRecord['CHAR_OCTET_LENGTH']))print("ORDINAL_POSITION: {}" .format(dataRecord['ORDINAL_POSITION']))print("IS_NULLABLE : {}" .format(dataRecord['IS_NULLABLE']))# print(dataRecord)dataRecord = DbtPy.fetch_assoc(statment)
bool DbtPy.commit ( IFXConnection connection )
描述
参数
返回值
示例
参考代码:test_007_commit.py
commit = DbtPy.autocommit(conn, DbtPy.SQL_AUTOCOMMIT_OFF)if commit :print("设置自动提交状态为OFF成功")else :print("设置自动提交状态为OFF失败")commit = DbtPy.commit(conn)if commit :print("提交成功")else :print("提交失败")
string DbtPy.conn_error ( [IFXConnection connection] )
描述
参数
返回值
示例
参考代码: test_033_conn_error.py
try :# 错误信息, 可修改conn = DbtPy.connect(connStr,connUser,connUser)except :print("连接失败, sqlstate = {}" . format(DbtPy.conn_error()))
string DbtPy.conn_errormsg ( [IFXConnection connection] )
描述
参数
返回值
示例
参考代码: test_034_conn_errormsg.py
try :# 错误信息, 可修改conn = DbtPy.connect(connStr,connUser,connUser)except :print("连接失败, sqlstate = {}" . format(DbtPy.conn_errormsg()))
IFXConnection DbtPy.connect(string ConnectionString, string user, string password [, dict options [, constant replace_quoted_literal])
描述
参数
ConnectionString以下格式的连接字符串,“PROTOCOL=onsoctcp;HOST=192.168.0.100;SERVICE=9088;SERVER=gbase01;DATABASE=testdb;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8”,参考GBase 8s数据库连接参数,其中常用的参数如下:
user - 连接到数据库的用户名称。
password - 用户的密码。
返回值
示例
参考代码:test_001_connect.py
try:conn = DbtPy.connect(connStr,connUser,connPass)except:print("连接失败,测试成功")return -1print("连接成功,测试失败")
int DbtPy.cursor_type ( IFXStatement stmt )
描述
参数
返回值
示例
参考代码: test_027_cursor_type.py
resultSet = DbtPy.exec_immediate(conn, sqlStatement, stmtOption)#get the cursor typecursorType = DbtPy.cursor_type(resultSet)print("Cursor Type : {}" . format(str(cursorType)))
stmt_handle DbtPy.exec_immediate( IFXConnection connection, string statement [, dict options] )
描述
参数
返回值
示例
参考代码:test_013_exec_immediate.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid = 1")dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("Tabid : {}" . format(dataRecord['tabid']))print("Tabname : {}" . format(dataRecord['tabname']))# print(dataRecord)dataRecord = DbtPy.fetch_assoc(statment)DbtPy.close(conn)
bool DbtPy.execute ( IFXStatement stmt [, tuple parameters] )
描述
参数
返回值
示例
参考代码: test_026_prepare.py
statment = DbtPy.prepare(conn, "select tabid, tabname from systables where tabid = ? and tabname = ?")DbtPy.bind_param(statment, 1, 1, DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_INTEGER)DbtPy.bind_param(statment, 2, 'systables', DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_VARCHAR)DbtPy.execute(statment)result = DbtPy.fetch_tuple(statment)# print(result)print("Tabid : {}" . format(str(result[0])))print("Tabname : {}" . format(str(result[1])))
mixed DbtPy.execute_many( IFXStatement stmt, tuple seq_of_parameters )
描述
参数
返回值
示例
参考代码: test_028_execute_many.py
prepare = DbtPy.prepare(conn, "insert into tabmany values(?,?)")param = ((1,'test001'),(2,'test002'),(3,'test003'),(4,'test004'))result = DbtPy.execute_many(prepare, param)row_count = DbtPy.num_rows(prepare)print("插入行数(num_rows()) : {} ".format(row_count))print("插入行数(execute_many()返回值) : {} ".format(result))
注意:execute_many()返回的行数不可信,仅可认为是成功。
tuple DbtPy.fetch_tuple ( IFXStatement stmt [, int row_number] )
描述
参数
返回值
示例
参考代码:test_015_fetch_tuple.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid = 1")dataRecord = DbtPy.fetch_tuple(statment)while dataRecord:print("Tabid : {}" . format(dataRecord[0]))print("Tabname : {}" . format(dataRecord[1]))# print(dataRecord)dataRecord = DbtPy.fetch_tuple(statment)
dict DbtPy.fetch_assoc ( IFXStatement stmt [, int row_number] )
描述
参数
返回值
示例
参考代码:test_014_fetch_assoc.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid = 1")dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("Tabid : {}" . format(dataRecord['tabid']))print("Tabname : {}" . format(dataRecord['tabname']))# print(dataRecord)dataRecord = DbtPy.fetch_assoc(statment)DbtPy.close(conn)
dict DbtPy.fetch_both ( IFXStatement stmt [, int row_number] )
描述
参数
返回值
示例
参考代码:test_016_fetch_both.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid = 1")dataRecord = DbtPy.fetch_both(statment)while dataRecord:print("Tabid : {}" . format(dataRecord[0]))print("Tabname : {}" . format(dataRecord['tabname']))# print(dataRecord)dataRecord = DbtPy.fetch_both(statment)
bool DbtPy.fetch_row ( IFXStatement stmt [, int row_number] )
描述
参数
返回值
示例
参考代码: test_017_fetch_row.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid < 10")bool = DbtPy.fetch_row(statment)if bool:print("Tabid : {}" . format(DbtPy.result(statment,'tabid')))print("Tabname : {}" . format(DbtPy.result(statment,1)))
int DbtPy.field_display_size ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
string DbtPy.field_name ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
int DbtPy.field_num ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
int DbtPy.field_precision ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
int DbtPy.field_scale ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
string DbtPy.field_type ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
int DbtPy.field_width ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
IFXStatement DbtPy.foreign_keys ( IFXConnection connection, string pk_qualifier, string pk_schema, string pk_table-name, string fk_qualifier, string fk_schema, string fk_table-name)
描述
参数
返回值
示例
参考代码:test_021_foreign_keys.py
statment = DbtPy.foreign_keys(conn, None, None, None, None, None, "tab_with_foreignkey")result = DbtPy.fetch_tuple(statment)# print(result)print("PKTABLE_CAT : {}" . format(result[0]))print("PKTABLE_SCHEM : {}" . format(result[1]))print("PKTABLE_NAME : {}" . format(result[2]))print("PKCOLUMN_NAME : {}" . format(result[3]))print("FKTABLE_CAT : {}" . format(result[4]))print("FKTABLE_SCHEM : {}" . format(result[5]))print("FKTABLE_NAME : {}" . format(result[6]))print("FKCOLUMN_NAME : {}" . format(result[7]))print("KEY_SEQ : {}" . format(result[8]))print("UPDATE_RULE : {}" . format(result[9]))print("DELETE_RULE : {}" . format(result[10]))print("FK_NAME : {}" . format(result[11]))print("PK_NAME : {}" . format(result[12]))
bool DbtPy.free_result ( IFXStatement stmt )
描述
参数
返回值
示例
参考代码:test_019_free_result.py
bool = DbtPy.free_result(statment)if bool :print("释放成功")else :print("释放失败")
bool DbtPy.free_stmt ( IFXStatement stmt ) (DEPRECATED)
描述
参数
返回值
mixed DbtPy.get_option ( mixed resc, int options, int type )
描述
参数
返回值
示例
参考代码: test_022_set_option.py
print("设置conenct的可选参数")bool = DbtPy.set_option(conn, {DbtPy.ATTR_CASE: DbtPy.CASE_UPPER}, 1)if bool :print("设置connect的可选参数成功")result = DbtPy.get_option(conn, DbtPy.ATTR_CASE, 1)print("ATTR_CASE : {}" . format(str(result)))print("设置statment的可选参数")statment = DbtPy.prepare(conn, "select * from systables")bool = DbtPy.set_option(statment, {DbtPy.SQL_ATTR_QUERY_TIMEOUT: 10}, 0)if bool :print("设置tatment的可选参数成功")result = DbtPy.get_option(statment, DbtPy.SQL_ATTR_CURSOR_TYPE, 0)print("SQL_ATTR_CURSOR_TYPE : {}" . format(str(result)))
int DbtPy.num_fields ( IFXStatement stmt )
描述
参数
返回值
示例
参考代码: test_30_num_fields.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables limit 2")result = DbtPy.num_fields(statment)print("结果集中字段数量 : {}" . format(result))for i in range(0, result) :print("field_name : {}" . format(DbtPy.field_name(statment, i)))print("field_num : {}" . format(DbtPy.field_num(statment, i)))print("field_type : {}" . format(DbtPy.field_type(statment, i)))print("field_width : {}" . format(DbtPy.field_width(statment, i)))print("field_precision : {}" . format(DbtPy.field_precision(statment, i)))print("field_scale : {}" . format(DbtPy.field_scale(statment, i)))print("field_display_size : {}" . format(DbtPy.field_display_size(statment,i)))
int DbtPy.num_rows ( IFXStatement stmt )
描述
参数
返回值
示例
参考代码: test_029_num_rows.py
statment = DbtPy.exec_immediate(conn, "insert into tabmany select level, 'test'||level from dual connect by level < 1000")result = DbtPy.num_rows(statment)print("插入语句影响行数: {}" . format(result))prepare = DbtPy.prepare(conn, "delete from tabmany where col1 < ?")DbtPy.bind_param(prepare, 1, 100)result = DbtPy.execute(prepare)result = DbtPy.num_rows(prepare)print("删除语句影响行数: {}" . format(result))prepare = DbtPy.prepare(conn, "update tabmany set col2 = 'ttttt' where col1 < ?")DbtPy.bind_param(prepare, 1, 200)result = DbtPy.execute(prepare)result = DbtPy.num_rows(prepare)print("更新语句影响行数: {}" . format(result))
IFXStatement DbtPy.prepare ( IFXConnection connection, string statement [, dict options] )
描述
参数
返回值
示例
参考代码: test_026_prepare.py
statment = DbtPy.prepare(conn, "select tabid, tabname from systables where tabid = ? and tabname = ?")DbtPy.bind_param(statment, 1, 1, DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_INTEGER)DbtPy.bind_param(statment, 2, 'systables', DbtPy.SQL_PARAM_INPUT, DbtPy.SQL_VARCHAR)DbtPy.execute(statment)result = DbtPy.fetch_tuple(statment)# print(result)print("Tabid : {}" . format(str(result[0])))print("Tabname : {}" . format(str(result[1])))
IFXStatement DbtPy.primary_keys ( IFXConnection connection, string qualifier, string schema, string table-name )
描述
参数
返回值
示例
参考代码: test_020_primary_keys.py
statment = DbtPy.primary_keys(conn, None, None, "tab_with_primarykey")result = DbtPy.fetch_tuple(statment)# print(result)print("TABLE_CAT : {}" . format(result[0]))print("TABLE_SCHEM : {}" . format(result[1]))print("TABLE_NAME : {}" . format(result[2]))print("COLUMN_NAME : {}" . format(result[3]))print("KEY_SEQ : {}" . format(result[4]))print("PK_NAME : {}" . format(result[5]))
IFXStatement DbtPy.procedure_columns ( IFXConnection connection, string qualifier, string schema, string procedure, string parameter )
描述
参数
返回值
PROCEDURE_CAT - 包含存储过程的catalog名称。如果该存储过程没有catalog,则该值为None。
PROCEDURE_SCHEM - 包含存储过程的schema名称
PROCEDURE_NAME - 存储过程的名称。
COLUMN_NAME - 参数的名称。
COLUMN_TYPE - 表示参数类型的整数值:
DATA_TYPE - 表示为整数值的参数的SQL数据类型。
TYPE_NAME - 表示参数的数据类型的字符串。
COLUMN_SIZE - 表示参数大小的整数值。
BUFFER_LENGTH - 存储此参数的数据所需的最大字节数。
DECIMAL_DIGITS - 参数的刻度,如果刻度不适用,则为None。
NUM_PREC_RADIX - 一个整数值,可以是10(表示精确的数字数据类型),2(表示近似的数字数据类型),或者None(表示基数不适用的数据类型)。
NULLABLE - 一个整数值,表示参数是否可为空。
REMARKS - 参数的描述。
COLUMN_DEF - 参数的默认值。
SQL_DATA_TYPE - 表示参数大小的整数值。
SQL_DATETIME_SUB - 返回表示datetime子类型代码的整数值,对于不适用此方法的SQL数据类型,则返回None。
CHAR_OCTET_LENGTH - 字符数据类型参数的最大字节长度,对于单字节字符集数据,该参数匹配COLUMN_SIZE,对于非字符数据类型,该参数为None。
ORDINAL_POSITION - 参数在CALL语句中的以1开始为索引的位置。
IS_NULLABLE - 一个字符串值,其中’YES’表示参数接受或返回无值,'NO’表示参数不接受或返回无值。
示例
参考代码:test_024_procedure_columns.py
statment = DbtPy.procedure_columns(conn, None, None, "proc1", None)result = DbtPy.fetch_tuple(statment)# print(result)while result :print("PROCEDURE_CAT : {}" . format(str(result[0])))print("PROCEDURE_SCHEM : {}" . format(str(result[1])))print("PROCEDURE_NAME : {}" . format(str(result[2])))print("COLUMN_NAME : {}" . format(str(result[3])))print("COLUMN_TYPE : {}" . format(str(result[4])))print("DATA_TYPE : {}" . format(str(result[5])))print("TYPE_NAME : {}" . format(str(result[6])))print("COLUMN_SIZE : {}" . format(str(result[7])))print("BUFFER_LENGTH : {}" . format(str(result[8])))print("DECIMAL_DIGITS : {}" . format(str(result[9])))print("NUM_PREC_RADIX : {}" . format(str(result[10])))print("NULLABLE : {}" . format(str(result[11])))print("REMARKS : {}" . format(str(result[12])))print("COLUMN_DEF : {}" . format(str(result[13])))print("SQL_DATA_TYPE : {}" . format(str(result[14])))print("SQL_DATETIME_SUB : {}" . format(str(result[15])))print("CHAR_OCTET_LENGTH: {}" . format(str(result[16])))print("ORDINAL_POSITION : {}" . format(str(result[17])))print("IS_NULLABLE : {}" . format(str(result[18])))result = DbtPy.fetch_tuple(statment)
resource DbtPy.procedures ( IFXConnection connection, string qualifier, string schema, string procedure )
描述
参数
返回值
示例
参考代码: test_023_procedures.py
statment = DbtPy.procedures(conn, None, None, "proc1")result = DbtPy.fetch_tuple(statment)# print(result)print("PROCEDURE_CAT : {}" . format(str(result[0])))print("PROCEDURE_SCHEM : {}" . format(str(result[1])))print("PROCEDURE_NAME : {}" . format(str(result[2])))print("NUM_INPUT_PARAMS : {}" . format(str(result[3])))print("NUM_OUTPUT_PARAMS: {}" . format(str(result[4])))print("NUM_RESULT_SETS : {}" . format(str(result[5])))print("REMARKS : {}" . format(str(result[6])))print("PROCEDURE_TYPE : {}" . format(str(result[7])))
mixed DbtPy.result ( IFXStatement stmt, mixed column )
描述
参数
返回值
示例
参考代码: test_018_result.py
statment = DbtPy.exec_immediate(conn, "select tabid,tabname from systables where tabid < 10")bool = DbtPy.fetch_row(statment)if bool:print("Tabid : {}" . format(DbtPy.result(statment,'tabid')))print("Tabname : {}" . format(DbtPy.result(statment,1)))
bool DbtPy.rollback ( IFXConnection connection )
描述
参数
返回值
示例
参考代码:test_008_rollback.py
commit = DbtPy.autocommit(conn, DbtPy.SQL_AUTOCOMMIT_OFF)if commit :print("设置自动提交状态为OFF成功")else :print("设置自动提交状态为OFF失败")statment = DbtPy.exec_immediate(conn, "insert into tab1(col1) values(1)")rollback = DbtPy.rollback(conn)if rollback :print("回滚成功")else :print("回滚失败")
IFXServerInfo DbtPy.server_info ( IFXConnection connection )
描述
参数
返回值
成功时,一个包含以下字段的对象:
DBMS_NAME - 连接到的数据库服务器的名称。
DBMS_VER - 数据库的版本号,格式为"MM.mm.uuuu",其中 MM 是主版本号,mm 是次版本号,uuuu 是更新版本号。例:“08.02.0001”
DB_NAME - 连接到的数据库的名称。(string)
DFT_ISOLATION - 服务器支持的默认事务隔离级别: (string)
IDENTIFIER_QUOTE_CHAR - 用于分隔标识符的字符。 (string)
INST_NAME - 包含数据库的数据库服务器上的实例名称。 (string)
ISOLATION_OPTION - 数据库服务器支持的隔离级别元组。隔离级别在DFT_ISOLATION属性中进行了描述。 (tuple)
KEYWORDS - 数据库服务器保留的关键字的元组。(tuple)
LIKE_ESCAPE_CLAUSE - 如果数据库服务器支持使用%和_通配符,则为True。如果数据库服务器不支持这些通配符,则为False。(bool)
MAX_COL_NAME_LEN - 数据库服务器支持的列名的最大长度,单位为字节。(int)
MAX_IDENTIFIER_LEN - 数据库服务器支持的SQL标识符的最大长度,以字符表示。(int)
MAX_INDEX_SIZE - 数据库服务器支持的索引中合并列的最大大小(以字节表示)。(int)
MAX_PROC_NAME_LEN - 数据库服务器支持的过程名的最大长度,以字节表示。(int)
MAX_ROW_SIZE - 数据库服务器支持的基表中一行的最大长度,以字节表示。(int)
MAX_SCHEMA_NAME_LEN - 数据库服务器支持的模式名的最大长度,以字节表示。(int)
MAX_STATEMENT_LEN - 数据库服务器支持的SQL语句的最大长度,以字节表示。(int)
MAX_TABLE_NAME_LEN - 数据库服务器支持的表名的最大长度,以字节表示。(int)
NON_NULLABLE_COLUMNS - 如果数据库服务器支持定义为NOT NULL的列,则为True;如果数据库服务器不支持定义为NOT NULL的列,则为False。(bool)
PROCEDURES - 如果数据库服务器支持使用CALL语句调用存储过程,则为True;如果数据库服务器不支持CALL语句,则为False。(bool)
SPECIAL_CHARS - 包含除A- z、0-9和下划线之外的所有可用于标识符名称的字符串。(string)
SQL_CONFORMANCE - 数据库服务器提供的符合ANSI或ISO SQL-92规范的级别:(string)
失败时,返回False
示例
参考代码:test_005_server_info.py
server = DbtPy.server_info(conn)if server:print("服务端信息:")print("DBMS_NAME: \"%s\"" % server.DBMS_NAME)print("DBMS_VER: \"%s\"" % server.DBMS_VER)print("DB_NAME: \"%s\"" % server.DB_NAME)print("INST_NAME: \"%s\"" % server.INST_NAME)print("SPECIAL_CHARS: \"%s\"" % server.SPECIAL_CHARS)print("KEYWORDS: int(%d)" % len(server.KEYWORDS))print("DFT_ISOLATION: \"%s\"" % server.DFT_ISOLATION)il = ''for opt in server.ISOLATION_OPTION:il += opt + " "print("ISOLATION_OPTION: \"%s\"" % il)print("SQL_CONFORMANCE: \"%s\"" % server.SQL_CONFORMANCE)print("PROCEDURES:", server.PROCEDURES)print("IDENTIFIER_QUOTE_CHAR: \"%s\"" % server.IDENTIFIER_QUOTE_CHAR)print("LIKE_ESCAPE_CLAUSE:", server.LIKE_ESCAPE_CLAUSE)print("MAX_COL_NAME_LEN: int(%d)" % server.MAX_COL_NAME_LEN)print("MAX_ROW_SIZE: int(%d)" % server.MAX_ROW_SIZE)print("MAX_IDENTIFIER_LEN: int(%d)" % server.MAX_IDENTIFIER_LEN)print("MAX_INDEX_SIZE: int(%d)" % server.MAX_INDEX_SIZE)print("MAX_PROC_NAME_LEN: int(%d)" % server.MAX_PROC_NAME_LEN)print("MAX_SCHEMA_NAME_LEN: int(%d)" % server.MAX_SCHEMA_NAME_LEN)print("MAX_STATEMENT_LEN: int(%d)" % server.MAX_STATEMENT_LEN)print("MAX_TABLE_NAME_LEN: int(%d)" % server.MAX_TABLE_NAME_LEN)print("NON_NULLABLE_COLUMNS:", server.NON_NULLABLE_COLUMNS)DbtPy.close(conn)else:print("服务端信息信息错误.")
bool DbtPy.set_option ( mixed resc, dict options, int type )
描述
参数
返回值
示例
参考代码: test_022_set_option.py
print("设置conenct的可选参数")bool = DbtPy.set_option(conn, {DbtPy.ATTR_CASE: DbtPy.CASE_UPPER}, 1)if bool :print("设置connect的可选参数成功")result = DbtPy.get_option(conn, DbtPy.ATTR_CASE, 1)print("ATTR_CASE : {}" . format(str(result)))print("设置statment的可选参数")statment = DbtPy.prepare(conn, "select * from systables")bool = DbtPy.set_option(statment, {DbtPy.SQL_ATTR_QUERY_TIMEOUT: 10}, 0)if bool :print("设置tatment的可选参数成功")result = DbtPy.get_option(statment, DbtPy.SQL_ATTR_CURSOR_TYPE, 0)print("SQL_ATTR_CURSOR_TYPE : {}" . format(str(result)))
IFXStatement DbtPy.special_columns ( IFXConnection connection, string qualifier, string schema, string table_name, int scope )
描述
参数
返回值
SCOPE - 表示唯一行标识符有效的最小持续时间的整数值
COLUMN_NAME - 唯一列的名称。
DATA_TYPE - 列的SQL数据类型。
TYPE_NAME - 列的SQL数据类型的字符串表示形式。
COLUMN_SIZE - 表示列大小的整数值。
BUFFER_LENGTH - 存储这个列存储数据所需的最大字节数。
DECIMAL_DIGITS - 列的刻度,如果不适用刻度,则为None。
PSEUDO_COLUMN - 总是返回 1。
示例
参考代码: test_031_special_columns.py
statment = DbtPy.exec_immediate(conn, "create table tabspecial(col1 int, col2 varchar(20), primary key(col2))")statment = DbtPy.special_columns(conn, None, None, "tabspecial", 0)result = DbtPy.fetch_assoc(statment)while result :# print(result)print("COLUMN_NAME : {}" . format(result['COLUMN_NAME']))print("DATA_TYPE : {}" . format(result['DATA_TYPE']))print("TYPE_NAME : {}" . format(result['TYPE_NAME']))print("COLUMN_SIZE : {}" . format(result['COLUMN_SIZE']))print("BUFFER_LENGTH : {}" . format(result['BUFFER_LENGTH']))print("DECIMAL_DIGITS : {}" . format(result['DECIMAL_DIGITS']))print("SCOPE : {}" . format(result['SCOPE']))print("PSEUDO_COLUMN : {}" . format(result['PSEUDO_COLUMN']))result = DbtPy.fetch_assoc(statment)
IFXStatement DbtPy.statistics ( IFXConnection connection, string qualifier, string schema, string table_name, bool unique )
描述
参数
返回值
TABLE_CAT - 包含表格的catalog。如果该表没有catalog,则该值为None。
TABLE_SCHEM - 包含表的模式的名称。
TABLE_NAME - 表名。
NON_UNIQUE - 一个整数值,表示索引是否禁止唯一值,或者行是否表示表本身的统计信息:
INDEX_QUALIFIER - 表示限定符的字符串值,该限定符必须预先添加到INDEX_NAME以完全限定索引。
INDEX_NAME - 表示索引名称的字符串。
TYPE - 一个整数值,表示结果集中这一行中包含的信息的类型:
ORDINAL_POSITION - 索引中列的以1为开始的索引位置。如果行包含有关表本身的统计信息,则为None。
COLUMN_NAME - 索引中列的名称。如果行包含有关表本身的统计信息,则为None。
ASC_OR_DESC - A表示列按升序排序,D表示列按降序排序,如果行包含关于表本身的统计信息,则为None。
CARDINALITY - 如果行包含有关索引的信息,则此列包含一个整数值,表示索引中惟一值的数目。如果行包含关于表本身的信息,则此列包含一个整数值,表示表中的行数。
PAGES - 如果行包含有关索引的信息,则此列包含一个整数值,表示用于存储索引的页数。如果行包含关于表本身的信息,则此列包含一个整数值,表示用于存储表的页数。
FILTER_CONDITION - 总是返回None。
示例
参考代码: test_032_statistics.py
statment = DbtPy.statistics(conn, None, None, "tabstatistics", True)result = DbtPy.fetch_assoc(statment)while result :# print(result)print("TABLE_CAT : {}" . format(result['TABLE_CAT']))print("TABLE_SCHEM : {}" . format(result['TABLE_SCHEM']))print("TABLE_NAME : {}" . format(result['TABLE_NAME']))print("NON_UNIQUE : {}" . format(result['NON_UNIQUE']))print("INDEX_QUALIFIER : {}" . format(result['INDEX_QUALIFIER']))print("INDEX_NAME : {}" . format(result['INDEX_NAME']))print("TYPE : {}" . format(result['TYPE']))print("ORDINAL_POSITION : {}" . format(result['ORDINAL_POSITION']))print("COLUMN_NAME : {}" . format(result['COLUMN_NAME']))print("ASC_OR_DESC : {}" . format(result['ASC_OR_DESC']))print("CARDINALITY : {}" . format(result['CARDINALITY']))print("PAGES : {}" . format(result['PAGES']))print("FILTER_CONDITION : {}" . format(result['FILTER_CONDITION']))print("")result = DbtPy.fetch_assoc(statment)
string DbtPy.stmt_error ( [IFXStatement stmt] )
描述
参数
返回值
string DbtPy.stmt_errormsg ( [IFXStatement stmt] )
描述
参数
返回值
IFXStatement DbtPy.table_privileges ( IFXConnection connection [, string qualifier [, string schema [, string table_name]]] )
描述
参数
返回值
示例
参考代码:test_010_table_privilegs.py
statment = DbtPy.table_privileges(conn, None, None, "tab1")dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("TABLE_CAT :{}" .format(dataRecord['TABLE_CAT']))print("TABLE_SCHEM : {}" .format(dataRecord['TABLE_SCHEM']))print("TABLE_NAME : {}" .format(dataRecord['TABLE_NAME']))print("GRANTOR : {}" .format(dataRecord['GRANTOR']))print("GRANTEE : {}" .format(dataRecord['GRANTEE']))print("PRIVILEGE : {}" .format(dataRecord['PRIVELEGE']))print("IS_GRANTABLE: {}" .format(dataRecord['IS_GRANTABLE']))# print(dataRecord)dataRecord = DbtPy.fetch_assoc(statment)
IFXStatement DbtPy.tables ( IFXConnection connection [, string qualifier [, string schema [, string table-name [, string table-type]]]] )
描述
参数
返回值
返回一个IFXStatement,其结果集包含以下列:
示例
参考代码:test_009_tables.py
statment = DbtPy.tables(conn, None, None, "tab1", None)dataRecord = DbtPy.fetch_assoc(statment)while dataRecord:print("TABLE_CAT :{}" .format(dataRecord['TABLE_CAT']))print("TABLE_SCHEM : {}" .format(dataRecord['TABLE_SCHEM']))print("TABLE_NAME : {}" .format(dataRecord['TABLE_NAME']))print("TABLE_TYPE : {}" .format(dataRecord['TABLE_TYPE']))print("REMARKS : {}" .format(dataRecord['REMARKS']))dataRecord = DbtPy.fetch_assoc(statment)