一般连接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使用的什么函数,等待验证才知。