PyPb系列-pb和python交互支持xp(一)-数据库连接

python版本采用的3.4.10版本所以支持xp

pb局部动态库函数定义

type prototypes
SUBROUTINE PyPB_evalPyScript(string pyscript) library "easypj.dll"
end prototypes

创建一个Python文件testSQLCA.py,代码如下

import pb
def PyPB_SQLCA():
    return pb.Obj("sqlca")
def PyPB_Easypj():
    return pb.Obj("easypj")

epj = PyPB_Easypj()
SQLCA = PyPB_SQLCA()

SQLCA.DBMS = "MSS Microsoft SQL Server 6.x"
SQLCA.Database = "master"
SQLCA.LogPass = "sa"
SQLCA.ServerName = "server2021"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
sqlerr = epj.db_connect(SQLCA)
if ''!=sqlerr:
    raise Exception(sqlerr)

pb.Obj().MessageBox('','数据库连接成功')

pb项目中调用

PyPB_evalPyScript("import testSQLCA")

实现细节

1 获取全局变量sqlca的方法

POB_DATA pob = ob_get_global_var_data(_obThis, (LPTSTR)"sqlca");

2 获取自定义对象easypj的一个实例

OB_DATA d = { 0 };
OB_CLASS_HNDL och = { 0 };
OB_GROUP_HNDL ogh = { 0 }, rtogh = { 0 };
och = ob_global_reference(_obThis, _T("easypj"), &ogh);
if (och.group_hndl == 0 || ogh == 65535) return NULL;
POB_RUNTIME_INST pri = (POB_RUNTIME_INST)ob_create_obinst(_obThis, och);
ob_set_data_rtinst(&d, pri, och.class_id, 1);

依赖文件目录

easypj.dll、Libjcc.dll、ntwdblib.dll、python.zip、testSQLCA.py

pb8或者pb9自行选择

pbweb80.exe、pbvm80.dll、pbmss80.dll、pbdwe80.dll
pbweb90.exe、pbvm90.dll、pbmss90.dll、pbdwe90.dll
直接测试testSQLCA.py代码的cmd命令

pbweb80.exe -c "import testSQLCA"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值