日期:2014-05-17  浏览次数:20454 次

如何用SQLConnect或者SQLDriverConnect 或者SQLBrowseConnect连接远程或者局域网的dsn(或者数据库)
我用ODBC API编写对access数据库的操作。
对于本地access的连接操作是没有问题的。
但要把access分步到服务器上,就没有办法连接上。
SQLConnect:中第二个参数ServerName :msdn说明说可以连接到网络上的其他计算机。但我没有办法实现:
连接本地的如下:
sqlRet = SQLConnect(m_hdbc,L"DBDEMO", SQL_NTS, 注明:DBDEMO是一个系统数据源,如果这样子写就不行L“DNS=DBDEMO”
NULL, SQL_NTS,
NULL, SQL_NTS);

而用SQLDriverConnect ,连接本地如下:
sqlRet = SQLDriverConnect(m_hdbc, 
NULL, 
(SQLTCHAR*)L"DSN=DBTEST;SERVER=10.100.142.76;UID=admin;PWD=;", //注:只有dsn这个起作用,其他的可以随便填,这是为什么?
SQL_NTS, 
(SQLTCHAR*)szConnStrOut,
sizeof(szConnStrOut), 
&pcbConnStrOut, 
SQL_DRIVER_NOPROMPT);
请熟悉这块的帮帮忙!

------解决方案--------------------
引用楼主 freshman45 的帖子:
我用ODBC API编写对access数据库的操作。
对于本地access的连接操作是没有问题的。
但要把access分步到服务器上,就没有办法连接上。
SQLConnect:中第二个参数ServerName :msdn说明说可以连接到网络上的其他计算机。但我没有办法实现:
连接本地的如下:
sqlRet = SQLConnect(m_hdbc,L"DBDEMO", SQL_NTS, 注明:DBDEMO是一个系统数据源,如果这样子写就不行L“DNS=DBDEMO”
NULL, SQL_NTS,
NULL, SQL_NTS);



------解决方案--------------------
DSN不提供任何远程服务功能, 所以你不可能连接远程DSN

对于 access, 要远程访问只能使用共享文件的方式, 要不然你自己写服务
------解决方案--------------------
探讨
DSN不提供任何远程服务功能, 所以你不可能连接远程DSN

对于 access, 要远程访问只能使用共享文件的方式, 要不然你自己写服务

------解决方案--------------------
帮顶!