SQL Server中處理單引號的兩種技巧

來源:互聯網
上載者:User

和資料庫打交道要頻繁地用到SQL語句,除非你是全部用控制項綁定的方式,但採用控制項綁定的方式存在著靈活性差、效率低、功能弱等等缺點。因此,大多數的程式員極少或較少用這種綁定的方式。而採用非綁定方式時許多程式員大都忽略了對單引號的特殊處理,一旦SQL語句的查詢條件的變數有單引號出現,資料庫引擎就會報錯指出SQL文法不對,本人發現有兩種方法可以解決和處理這種單引號的問題(以VB為例子)。

方法一:利用逸出字元處理SQL語句。下面的函數可以在執行SQL語句前調用,執行處理後的結果即可產生正確的結

果。

Function ProcessStr(str As String)

Dim pos As Integer

Dim stedest As String

pos = InStr(str, "'")

While pos > 0

str = Mid(str, 1, pos) & "'" & Mid(str, pos + 1)

pos = InStr(pos + 2, str, "'")

Wend

ProcessStr = str

End Function

其中str參數是你的SQL字串。函數一旦發現字串中有單引號出現,就在前面補上一個單引號。

方法二:利用資料對象中的參數。可以利用ADODB.COMMAND對象,把含有單引號的字串傳遞給COMMAND,然後執行查

詢等操作即可。

以上兩種方法比較,方法一增加了系統處理時間,方法二簡潔、高效,如果採用預存程序,然後再傳遞參數給預存程序,預存程序是先行編譯的,這樣系統的效率更高。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.