连接到神通数据库

建立连接

当应用程序维护与数据库的单个用户会话时,这些操作非常有用。连接由STPython.connect()或其别名STPython.Connection()创建。返回Connection对象。

参数函数含义:

user 用户名
password 密码
dsn 连接串
mode 连接方式,目前仅支持默认值(不指定)
handle ACISvcCtx*类型,且仅当Python程序作为植入程序时使用
threaded 是否是多线程模式
encoding 字符集编码

例1 按名称传入参数

connection = STPython.connect(user="SYSDBA", password="szoscar55",
        dsn="localhost:2003/osrdb", threaded = False, encoding="UTF-8")

例2 按位置传入参数

connection = STPython.connect("SYSDBA", "szoscar55","localhost:2003/osrdb")

关闭连接

当不再需要连接时,应通过调用Connection.close()来释放连接。或者,您可能更愿意让连接在对连接的引用超出范围时自动清理连接。这样,STPython以正确的顺序关闭从属资源。另一种方法是使用“with”块,例如:

with STPython.connect(user="SYSDBA", password="szoscar55",
                      dsn="localhost:2003/osrdb",
                      encoding="UTF-8") as connection:
    cursor = connection.cursor()
    cursor.execute("insert into test values (:1, :2)",
                  (1, "Some string"))
    connection.commit()

此代码可确保在块完成后关闭连接,数据库将回收资源。此外,任何在块外部使用变量的尝试都将失败。

安全连接

STPython依赖aci驱动,aci驱动支持了ssl安全通信,且可以通过连接字符串设置,因此STPython也可以在连接字符串设置ssl通信相关配置,比如:

conn=STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb?ssl_wallet_enable=1;ssl_wallet_path=/opt/wallet/;ssl_wallet_pwd=szoscar55$')

详细可以设置的参数,可参考 《ACI (C/C++)程序员开发手册-->ACI编程概述-->参数配置文件-->参数说明》 中的参数及参数功能描述。