一般连接odbc,我们需要手工在控制面板的ODBC(32位)注册数据源,一般我们是在“用户DSN”或者“系统DSN”中注册一个链接到某个数据库的链接。注册后,在注册表的"HKEY_CURRENT_USER\software\odbc\odbc.ini"中记录了下来。我们也可以建立“文件DSN”。它是把连接信息写入一个文件中保存。格式如下:

[ODBC]
DRIVER=ODBC Driver 18 for SQL Server
UID=sa
TrustServerCertificate=Yes
WSID=CC
Trusted_Connection=No
SERVER=192.168.1.100,1433
Description=test

过去,用程序自动注册数据源,我们一般是仿照手工注册的方式,在注册表中写入。最近参考了一篇vc++使用odbc的例子,当调用sqldriverconnect函数时,它是把如上所示的文件dsn中的信息直接送入该函数的,也就实现了编程直接送入连接字符串,不需要注册什么数据源。

pb中这样操作:

原:

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=mysn;UID=sa;PWD=123'"

改为:

SQLCA.DBParm = "ConnectString='Driver={ODBC Driver 18 for SQL Server};Server=192.168.1.100,1433;Database=mydb;Uid=sa;Pwd=123;Trusted_Connection=No;WSID=CC;TrustServerCertificate=Yes;language=Simplified Chinese;'"

具体就是把上面的“文件DSN”的项,改为DBParm的参数。

后注:有三种连接函数

SQLConnect,SQLDriverConnect,SQLBrowseConnect,其中SQLConnect是使用dsn。

SQLDriverConnect可以使用dsn和上面的方法。其中pb12.5是用的SQLDriverConnect。早期版本如pb5-9,10-12.0使用的什么函数,等待验证才知。


 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐