確切的錯誤我得到是SQL查詢工作在工作臺而是要德爾福
無法轉換類型的變種(的UnicodeString)到類型(日期)。
我用於日期的變量是一個字符串,我必須在其周圍放置引號,否則它將返回空值,但是當我將引號放在它的周圍時,出現此錯誤。
這是我的SQL查詢代碼和變量TodaysDate
。 (此代碼是不能複製粘貼,由於它是在不同的機器上沒有上網功能,所以請忽略任何可能導致編譯錯誤)
if MidStr(DateToStr(Date),2,1) ='/' then
TodaysDate := MidStr(DateToStr(Date),6,4) + '-' + '0' +
MidStr(DateToStr(Date),1,1) + '-' + MidStr(DateToStr(Date),3,2)
else
TodaysDate := MidStr(DateToStr(Date),7,4) + '-'
+ MidStr(DateToStr(Date),1,2) + '-' + MidStr(DateToStr(Date),4,2);
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT tbl.emailAddress, tbljob.Time FROM '+
'dbwindowwash.tblclient, dbwindowwash.tbljob, dbwindowash.tbljobclientworker '+
'WHERE tbljobclientworker.jobID = tbljob.jobID AND '+
'tbljobclientworker.clientID = tblclient.clientID AND tbljob.Date = ' +
QuotedStr(TodaysDate));
ADOQuery1.Open
// More Code using the email addresses and time
複製和粘貼直接進入工作臺此查詢給了我所有我想要的數據,但在德爾福給我和錯誤,並沒有QuotedStr()
它在Delphi和Workbench都返回null。
我在我的程序中有一個類似的查詢,它使用日期作爲字符串與QuotedStr()
,它工作正常,所以我完全不知道這是什麼問題。
Delphi出現無法執行Workbench所做的從字符串到日期的隱式轉換。您必須使用適當的Delphi投射來投射quotedStr。它可能在別處工作的原因是因爲你可能正在使用字符串數據;而這裏是一個日期。例如:http://www.delphibasics.co.uk/RTL.asp?Name=StrToDateTime'StrToDateTime('23/02/2075 12:34:56');'或類似於:http:// stackoverflow。 com/questions/11782114/how-i-can-convert-str-date-datetime – xQbert
使用參數 - 不僅可以擺脫轉換/格式問題,還可以防止sql注入 –
您有足夠的代表添加評論。您不必添加答覆即可回覆任何內容。更新/編輯你的問題,如果你有更多的細節或添加評論 –