我使用Microsoft ODBC for Oracle驅動程序成功連接到Oracle 10g數據庫。將參數與Oracle ODBC連接使用
不帶參數定期查詢做工精細,但如果這些參數都沒有得到傳入的參數化查詢行事。
前。
--this works fine
Select * from tbl1 where column1 = 'test'
--this doesn't
select * from tbl1 where column1 = ?
--odbc string parameter 'test'
這裏是我的連接字符串的樣子:
"Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=" & pstrServer & ")(PORT=" & pintPort.ToString & "))" & _
"(CONNECT_DATA=(SERVICE_NAME=" & pstrPhysicalName & "))); " & _
"uid=" & pstrUserName & ";pwd=" & pstrPassword & ";"
而且我喜歡這個參數添加到我的ODBC命令:
arrOdbcParam(index) = New OdbcParameter("@paramName", paramValue)
...
cmd.Parameters.AddRange(arrOdbcParam)
原諒partialy複製,有些pseuedo代碼。
找到了這個解決方案,它爲我工作,爲未來的訪問者找到這個問題的一個筆記:我在我的where標準(其中mystring ='?')使用單個滴答聲;你不需要它們。(請注意,提問者也沒有使用它們。)(斯蒂芬,這實際上與你的答案沒有任何關係) – 2012-05-10 15:02:29