關於AdoQuery中的SQL字串連接 |
答題得分者是:SwingGuppy
|
wychen57
一般會員 發表:32 回覆:77 積分:21 註冊:2003-10-04 發送簡訊給我 |
小弟使用AdoQuery做資料查詢,其中帶有日期時間字串,但sql字串無法加入 ' 這個字元,不然就會出現字串不正常的錯誤,舉例來說
<textarea class="delphi" rows="10" cols="60" name="code"> var Year1,Year2,Mon1,Mon2,Date1,Date2 : word; Sql1 : string; Sql2 : string; Sql3 : string; Sql4 : string; Sql5 : string; begin ADOQuery1.Close; ADOQuery2.Close; DecodeDate(DateTimePicker1.datetime,Year1, Mon1, Date1); DecodeDate(DateTimePicker3.datetime,Year2, Mon2, Date2); ADOQuery1.SQL.Clear; ADOQuery2.SQL.Clear; Sql1 := 'select * From RawAnalog'; SQL2 := IntToStr(Year1) '/' IntToStr(Mon1) '/' IntToStr(Date1) ' ' TimeToStr(DateTimePicker2.DateTime) '.000'; SQL3 := IntToStr(Year2) '/' IntToStr(Mon2) '/' IntToStr(Date2) ' ' TimeToStr(DateTimePicker4.DateTime) '.000'; Sql4 := 'where UTCDateTime Between ' ''' SQL2 ''' ' And ' ''' SQL3 '''; Sql5 := 'select Count(*) As Total From RawAnalog'; ADOQuery1.SQL.Add(Sql1); ADOQuery1.SQL.Add(SQL4 'ORDER BY UTCDateTime'); ADOQuery1.Open; end;</textarea> 以上的SQL4就會出現錯誤,sql字串會被截斷,小第只好採另一種方法處理 <textarea class="delphi" rows="10" cols="60" name="code"> Sql4 := 'where UTCDateTime Between ' chr(39) SQL2 chr(39) ' And ' chr(39) SQL3 chr(39); </textarea> 想請教大大們有比較正確的寫法嗎 |
SwingGuppy
初階會員 發表:1 回覆:18 積分:38 註冊:2006-12-28 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
wychen57
一般會員 發表:32 回覆:77 積分:21 註冊:2003-10-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |