ADO执行再次sqlserver不报告参照完整性约束

问题描述 投票:0回答:1

证据是,当使用ADO删除Sqlsserver中的记录时,它不会报告参照完整性约束。

主表:tblMasterChecklsit子表:tblMasterTopic(引用tblmasterchecklist.checklistid)

Dim ado作为New adodb.ConnectionDim sConnectionString As String

ON error goto eh

sConnectionString =“ Provider = SQLOLEDB;数据源= hillhead-100;初始目录= XXXXXXXX; UID = XXXXXXXXXXXXX; PWD = XXXXXXXXXXXX;”ado.Open(sConnectionString)ado.execute“从tblMasterChecklist删除WHERE ChecklistID ='DE'”]

发出错误:错误= 3001,应用程序错误3001,参数类型错误,超出可接受范围或彼此冲突。

只要没有子记录,此命令也可以正常运行

这似乎是驱动程序的限制。

有什么建议吗?

sql-server odbc ado access
1个回答
0
投票

对于一个,请勿使用SQLOLEDB。该驱动程序是MDAC的一部分,自Windows XP SP2以来,该驱动程序可以方便地安装在所有Windows机器上,但其历史可以追溯到Windows XP SP2,并且已经过时。它已弃用,并且未实现许多基本功能,例如,对“ DateTime2”等“现代”数据类型的支持。

相反,使用MSOLEDBSQL,这是SQL Server当前唯一支持的OLEDB提供程序。

您应该能够下载最新版本here

或者,使用ODBC驱动程序,因为ADO支持ODBC和OLEDB。

© www.soinside.com 2019 - 2024. All rights reserved.