连接到神通数据库¶
建立连接¶
当应用程序维护与数据库的单个用户会话时,这些操作非常有用。连接由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编程概述-->参数配置文件-->参数说明》 中的参数及参数功能描述。