Module STPython¶
Bulk¶
语法:¶
STPython.Bulk(con, tableName, **kwargs)
说明:¶
创建Bulk类型对象
- 位置参数:
- con: 连接对象
- tableName: 表名
- 可选参数:
- schema: 模式名,不设置时默认SYSDBA
- colsDesc: 列描述符,在插入的数据的顺序与表中的顺序不一致或者并非导入数据库中所有列时,需要提供符合格式的列描述语句,如"B text,A text",当不设置时在addrow或addrows需按表的所有字段顺序输入
- bufferSize: 缓存大小,不设置时默认1M
举例:¶
table_name = "tab01"
schema = "SYSDBA"
cols_desc = "B text,A text"
bufferSize = 1024*1024
con = STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb')
bulk = STPython.Bulk(con, table_name, schema=schema, colsDesc=cols_desc, bufferSize=bufferSize)
clientversion¶
语法:¶
STPython.clientversion()
说明:¶
返回用作 5 元组的客户端库的版本。这五个值是主版本、次要版本、更新编号、修补程序编号和端口更新编号。
举例:¶
STPython.clientversion()
Connection¶
语法:¶
STPython.Connection(*args, **kwargs)
说明:¶
连接数据库,返回一个 connection 对象。
参数为连接属性,所有连接属性都可以用关键字指定,在 connection 连接串中,没有指定的关键 字都按照默认值处理。
参数描述
| user | 用户名 |
| password | 密码 |
| dsn | 连接串 |
| mode | 连接方式,目前仅支持默认值(不指定) |
| handle | ACISvcCtx*类型,且仅当Python程序作为植入程序时使用 |
| threaded | 是否是多线程模式 |
connect¶
同Connection
DateFromTicks¶
语法:¶
STPython.DateFromTicks(ticks)
说明:¶
指定 ticks(从新纪元开始的秒值)构造日期类型对象。
举例:¶
date = STPython.DateFromTicks(1499930096)
print(date)
TimeFromTicks¶
语法:¶
STPython.TimeFromTicks(ticks)
说明:¶
构造一个对象,其中包含给定价格变动值(自纪元以来的秒数;有关详细信息,请参阅标准 Python 时间模块的文档)。
举例:¶
timeTuple = (2002, 12, 9, 0, 0, 0, 0, 0, -1)
timeInTicks = time.mktime(timeTuple) + 1 * 86400
dateValue = STPython.TimestampFromTicks(int(timeInTicks))
print(dateValue)
输出: 2002-12-10 00:00:00
Timestamp¶
语法:¶
STPython.Timestamp(year, month, day, hour, minute, second)
举例:¶
STPython.Timestamp(2021,7,29,13,30,59)
TimestampFromTicks¶
语法:¶
STPython.TimestampFromTicks(ticks)
说明:¶
指定 ticks(从新纪元开始的秒值)构造Timestamp类型对象。
threadsafety¶
语法:¶
STPyhton.threadsafety
说明:¶
说明当前线程安全级别 当前是2
级别描述
0:不支持线程安全, 多个线程不能共享此模块
1:初级线程安全支持: 线程可以共享模块, 但不能共享连接
2:中级线程安全支持 线程可以共享模块和连接, 但不能共享游标
3:完全线程安全支持 线程可以共享模块, 连接及游标
DATETIME¶
语法:¶
STPython.DATETIME
说明:¶
此类型对象用于描述数据库中包含二进制数据的列
举例:¶
cursor.execute('create table dt(d date)')
var = cursor.var(STPython.DATETIME)
var.setvalue(0,STPython.Timestamp(2022, 7, 30, 12, 33, 20))
cursor.execute('insert into dt values(:da)', da=var)
cursor.execute('select * from dt')
print(cursor.fetchone())
输出: (datetime.datetime(2022, 7, 30, 0, 0),)
NUMBER¶
语法:¶
STPython.NUMBER
说明:¶
此类型对象用于描述数据库中的数字列
举例:¶
cursor.execute('create table tn(s number)')
var = cursor.var(STPython.NUMBER)
var.setvalue(0,123)
cursor.execute('insert into tn values(:t)', t=var)
cursor.execute('select * from tn')
v, = cursor.fetchone()
print(v)
STRING¶
语法:¶
STPython.STRING
说明:¶
此类型对象用于描述数据库中的字符串列
举例:¶
cursor.execute('create table ts(s varchar(256))')
var = cursor.var(STPython.STRING)
var.setvalue(0,'hello world')
cursor.execute('insert into ts values(:t)', t=var)
cursor.execute('select * from ts')
v, = cursor.fetchone()
print(v)
BLOB¶
说明:¶
该类型用来描述数据库BLOB类型
举例:¶
cursor = connection.cursor()
cursor.execute('create table tb(b blob)')
cursor.execute('insert into tb values(empty_blob)')
cursor.execute('select * from tb')
b, = cursor.fetchone()
b.write(b'aaa')
print(b.read())