delphi 單引號

 

由於 ' (單引號)是SQL的標準字符符號,所以在SQL語句中間遇到 ' 時要做特殊處理。

1. 使用 QuotedStr 函數

QuotedStr的作用是使字符串包含單引號: 

在字符的前後加上( ')號,因爲在DELPHI中字符賦值是需要引號的

比如 
CommandText   :=   CommandText   +   QuotedStr(Edit1.Text);  

Sql := 'select ... from ... where uName='  + QuotedStr(Edit1.Text); 

上面的語句還可以寫成:

Sql := 'select ... from ... where uName='  + Char(39) stringreplace(Edit1.Text,'''','''''',[rfReplaceAll])+ Char(39)

 Char(39) 代碼一個分號 stringreplace 把字符串中的單引號換成兩個單引號,只是還是QuotedStr好用,前後加了單引號而且把見到的單引號都替換成兩個單引號了;


2、採用替代法 即用 " 代替 ' ,正好delphi有現在的函數,例如:

UName :=stringreplace(ComBoUser.Text,'''','''''',[rfReplaceAll]);

UPwd :=StringReplace(EPassword.Text ,'''','''''',[rfReplaceAll]);

Sql :='select UAuth from VUser where UName=''' +UName +''' and UPwd=''' +UPwd +'''';

adoquery1.SQL.Add(Sql);


 


3、採用參數法 即用參數代替變量 ,此時不需要對變量做任何處理,例如:

AdoQuery1.SQL.Add('update GoodsReason set GRCode =:VC,GRName =:VN where GID =:ID');

AdoQuery1.Parameters.Clear;

AdoQuery1.Parameters.CreateParameter('VC',ftString,pdinput,10,EGCode.Text );

AdoQuery1.Parameters.CreateParameter('VN',ftString,pdinput,20,EGName.Text );

AdoQuery1.Parameters.CreateParameter('ID',ftInteger,pdinput,8,StrToInt(GoodsId.Caption));

AdoQuery1.ExecSQL ;

發佈了15 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章