0
存储过程,并使用ADO连接与然而引号,我遇到的问题..Microsoft OLE DB提供了SQL Server错误“80040E14”
x = "text'"
If instr(x,"'") then x=replace(x,"'","''")
'x = "text''" at this point
Set Rs = Server.Createobject("adodb.recordset")
Rs.Open "Select_SP @name='" & x & "'"
我以为我是这样做的权利..但我想不会,因为我得到这个错误:
Microsoft OLE DB Provider for SQL Server error '80040e14'
SELECT ID from Table where Name='text''
它不应该是
Name = 'text'''
为什么不是SQL RECO使用ADO操作双引号?
的Select_SP用途是这样的:
SET @sql = 'SELECT ID from Table where Name='''[email protected]+''''
Exec(@sql)
难道我该SP正确写入?
确定,但有另一种方式,通过使用IF SELECT语句切换.. THEN没有把语句放在变量中,然后exec呢? MS Sql Server 2008的方式。 –
你的意思是在程序里面吗?如果是这样,我不确定,但这是一个不同的问题,你应该把它发布到“sql-server”和“tsql”标签下。我的答案解释了如何将字符串从ADO传递到存储过程,以及为什么引用会引起混淆,最好避免。 – Dan
+1,这里的关键是使用**参数**将变量传递给SQL Server。 Command对象是您如何使用ADO参数。 –