本页根据扩展源码 src/native/py_Dameng.c、src/native/Connection.c、src/native/Cursor.c 汇总公开接口。
dmPython.apilevel = "2.0"dmPython.threadsafety = 1dmPython.paramstyle = "qmark"dmPython.versiondmPython.buildtime
dmPython.connect(...)dmPython.Connect(...)
两者均为 Connection 类型构造入口。
dmPython.connect(
user=None,
password=None,
dsn=None,
host=None,
server=None,
port=None,
access_mode=None,
autoCommit=None,
connection_timeout=None,
login_timeout=None,
txn_isolation=None,
app_name=None,
compress_msg=None,
use_stmt_pool=None,
ssl_path=None,
ssl_pwd=None,
mpp_login=None,
ukey_name=None,
ukey_pin=None,
rwseparate=None,
rwseparate_percent=None,
cursor_rollback_behavior=None,
lang_id=None,
local_code=None,
cursorclass=None,
schema=None,
shake_crypto=None,
catalog=None,
dmsvc_path=None,
parse_type=None,
)说明:
host与server互斥(只允许设置一个)。user支持user/password@server:port[/schema][?catalog=...]形式。- 常量参数建议使用模块常量(如
DSQL_AUTOCOMMIT_ON、ISO_LEVEL_READ_COMMITTED)。
DateFromTicks(ticks)TimeFromTicks(ticks)TimestampFromTicks(ticks)StringFromBytes(bs)
DateTimeTimestampDATETIME
TupleCursorDictCursor
用于 connect(cursorclass=...)。
cursor()commit()rollback()close()disconnect()(close()别名)debug(debug_type=dmPython.DEBUG_OPEN)shutdown(shutdown_type=dmPython.SHUTDOWN_DEFAULT)explain(statement)ping(reconnect=0)__enter__()__exit__(exc_type, exc_value, exc_traceback)
dsnserver_statuswarning
可读写:
access_modeasync_enableauto_ipdlocal_codelang_idapp_nametxn_isolationcompress_msgrwseparaterwseparate_percentuse_stmt_poolssl_pathmpp_loginautoCommitautocommitconnection_deadconnection_timeoutlogin_timeoutpacket_sizeport
只读:
server_codecurrent_schemastr_case_sensitivemax_row_sizecurrent_catalogtrx_stateserver_versioncursor_rollback_behavioruserserverinst_nameversionmax_identifier_lengthoutputtypehandlerstmtcachesize
以上属性多数存在同名 DSQL_ATTR_* 别名,例如:
connection.autoCommit<=>connection.DSQL_ATTR_AUTOCOMMITconnection.port<=>connection.DSQL_ATTR_LOGIN_PORT
execute(statement, params=None, **kwargs)executedirect(statement)fetchall()fetchone()fetchmany(rows=arraysize)prepare(statement)parse(statement)(当前实现返回NotSupportedError)setinputsizes(*args, **kwargs)executemany(statement, seq_of_params)callproc(name, params=None)callfunc(name, params=None)setoutputsize(size, column=-1)var(typ, size=0, arraysize=cursor.arraysize, inconverter=None, outconverter=None, typename=None, encoding_errors=None, bypass_decode=False, encodingErrors=None)arrayvar(...)(当前实现返回NotSupportedError)bindnames()(当前实现返回NotSupportedError)close()next()nextset()__enter__()__exit__(exc_type, exc_value, exc_traceback)
arraysize(可写)bindarraysize(可写)rowcount(只读)rownumber(只读)with_rows(只读)statement(只读)connection(只读)column_names(只读)lastrowid(只读)execid(只读)_isClosed(内部)_statement(内部)output_stream(可写)description(只读计算属性)
WarningErrorInterfaceErrorDatabaseErrorDataErrorOperationalErrorIntegrityErrorInternalErrorProgrammingErrorNotSupportedError
此外还提供 DmError 对象(包含 code、offset、message、context)。
DEBUG_CLOSEDEBUG_OPENDEBUG_SWITCHDEBUG_SIMPLESHUTDOWN_DEFAULTSHUTDOWN_ABORTSHUTDOWN_IMMEDIATESHUTDOWN_TRANSACTIONALSHUTDOWN_NORMAL
ISO_LEVEL_READ_DEFAULTISO_LEVEL_READ_UNCOMMITTEDISO_LEVEL_READ_COMMITTEDISO_LEVEL_REPEATABLE_READISO_LEVEL_SERIALIZABLEDSQL_MODE_READ_ONLYDSQL_MODE_READ_WRITEDSQL_AUTOCOMMIT_ONDSQL_AUTOCOMMIT_OFF
PG_UTF8PG_GBKPG_BIG5PG_ISO_8859_9PG_EUC_JPPG_EUC_KRPG_KOI8RPG_ISO_8859_1PG_SQL_ASCIIPG_GB18030PG_ISO_8859_11LANGUAGE_CNLANGUAGE_ENLANGUAGE_CNT_HK(条件编译)
DSQL_TRUEDSQL_FALSEDSQL_RWSEPARATE_ONDSQL_RWSEPARATE_OFFDSQL_TRX_ACTIVEDSQL_TRX_COMPLETEDSQL_MPP_LOGIN_GLOBALDSQL_MPP_LOGIN_LOCALDSQL_CB_CLOSEDSQL_CB_PRESERVE
模块还导出一组数据类型对象,可用于绑定/类型判断:
INTERVAL,YEAR_MONTH_INTERVALBLOB,CLOB,LOBBFILE,exBFILELONG_BINARY,LONG_STRINGDATE,TIME,TIMESTAMPCURSORSTRING,FIXED_STRING,BINARY,FIXED_BINARYOBJECTVAR,objectvarNUMBER,DOUBLE,REAL,BOOLEAN,DECIMALTIME_WITH_TIMEZONE,TIMESTAMP_WITH_TIMEZONEBIGINT,ROWID