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參數。 –