1,108
社区成员




SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "ufdata_001_2019"
SQLCA.LogPass = "sql"
SQLCA.ServerName ="AZC\AZC"
SQLCA.ServerName ="."
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
项目原先数据源采用sql server 直连得方式,如上代码,数据库如采用 Microsoft SQL Server 2008R2或者 2012版版本,相同得目标程序都能连接,换成 2016或者2019版本数据库,目标程序没有任何返回或者返回SSL安全错误;因生产环境采用2016版数据库,故期望修改数据源连接方式采用ODBC方式,如下
//建立odbc数据源
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ufdata_001_2019","Driver",regstring!,'C:\\WINDOWS\\system32\\SQLSRV32.dll')
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ufdata_001_2019","Server",regstring!,'AZC\AZC')
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ufdata_001_2019","atabase",regstring!,'UFDATA_001_2019')
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ufdata_001_2019","LastUser",regstring!,'sa')
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","ufdata_001_2019",regstring!,'SQL Server')
//连接数据源
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=ufdata_001_2019;UID=sa;PWD=sql',DisableBind=1,StaticBind=0,TrimSpaces='1',CallEscape='No',DelimitIdentifier='Yes',StripParmNames='Yes'"
但由此引出得报错问题如“select error: an error occurred,yet no message was returned by the database” 和“select error:bind parameter value for ':cvenname' is too big(2)”。
情况如上,项目停滞,不管采用哪种方式,请高人指点。
怀疑是odbc 的 DBParm,配置不全的问题,odbc用snc配置。
pb9是支持oledb连接的,我用mss或者ole都可以
别说2016,更高版本都行
此问题未解决,但已用C#.net重新开发,结帖。
可以改用用oledb的方式连接试试
1000元求此问题解决方法!!QQ:185872114
ntwdblib.DLL 版本2000.80.2039.0;其它版本也试过,都不行。
我现在就是PB9连接sqlserver 2016没有任何问题,检查你的动态连接库的版本