線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1271
推到 Plurk!
推到 Facebook!

關於AdoQuery中的SQL字串連接

答題得分者是:SwingGuppy
wychen57
一般會員


發表:32
回覆:77
積分:21
註冊:2003-10-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-24 15:18:34 IP:59.125.xxx.xxx 訂閱
小弟使用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-24 15:29:52 IP:61.62.xxx.xxx 訂閱
字串中兩個單引號等於sql一個單引號所以可以改成如下:
Sql4 := 'where UTCDateTime Between ' '''' SQL2 '''' ' And ' '''' SQL3 '''';
更簡潔的寫法是
Sql4 := 'where UTCDateTime Between ''' SQL2 ''' And ''' SQL3 '''';
------
受人點滴,湧泉以報。
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-24 15:32:09 IP:211.75.xxx.xxx 訂閱
也可以用 QuotedStr()
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
wychen57
一般會員


發表:32
回覆:77
積分:21
註冊:2003-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-24 15:43:52 IP:59.125.xxx.xxx 訂閱
感謝兩位大大精彩的解答,小弟解決了,感恩
系統時間:2024-05-19 13:42:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!