sql語句中的字符串拼接


在使用sql語句的時候,我們經常會遇到使用字符串變量的時候,比如說,查詢,str:='select *  from Table where Name='''+Name+'''';在.net里面使用sqlparameter,就不需要自己手動轉換了,但是在delphi中,好像是沒有那種用法,組織sql語句時,怎么把拼接的字符串轉成符合規范的sql語句,這就是個問題了。

就像上面寫那句一樣,我要想把name的值傳到sql語句中間,還要帶上單引號,形如str:='select *  from Table where Name='JueJiang‘',就要考慮delphi中單引號的用法了。

首先,單引號必須是成對的,運行之后可能會出現’123''之類的情況,但是編譯期寫成str := '123''肯定是不行的。

第二,單引號的意義,成對的單引號,是標准的字符串賦值格式。在成對單引號之間的單引號,每兩個相當於一個轉換之后的單引號字符。還是舉個例子說明一下吧。

    str := '''';
    str1 := '123''';
    str2 := '123'+'';


-------------------------------------
  顯示結果:
str:' str1:123' str2:123

去掉指定字符串格式的兩個單引號,中間的部分,兩個單引號代表一個'字符,加號運算符的效果相當於去掉中間的兩個單引號。

使用變量也是一樣:

    str3 := '123'+Name;
    str4 := '123'''+Name;
    str5 := '123'''+Name+'';
    str6 := '123'''+Name+'''';

-------------------------------------
顯示結果:
    str3:123456
    str4:123'456 
    str5:123'456
    str6:123'456'

通常sql語句中的拼接用的都是最后的一種情況。

補充一下,雙引號,在delphi沒有什么特殊的含義,就是普通的字符

  str7 := '"123"';

-------------------------------------
顯示結果:
  str7:"123"

最后,還有sql語句的換行,換行就相當於是兩個字符串的拼接了,需要使用加號連接起來。

  str:='select *  from Table '+
        'where Name='''+Name+'''';

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM