資料庫查詢錯誤急急急 |
|
wangwb_1027
一般會員 發表:6 回覆:13 積分:3 註冊:2006-07-06 發送簡訊給我 |
哪位大哥幫我看看小弟在運行程式的時候出現如下錯誤:
Invalid use of keyword. Token:varchar(30),a.p_qty) Line Number:1. 在SQL中執行又是OK的,這一句不知道哪裡錯了"convert(varchar(30),a.p_qty) as p_qty" 代碼如下: DATAM.QR_MCMRTNIN.Close; DATAM.QR_MCMRTNIN.SQL.Clear; DATAM.QR_MCMRTNIN.SQL.Add('selecta.op_no,a.op_date,b.job_no,c.st_no,d.inv_no,convert(varchar(30),a.p_qty) as p_qty'); DATAM.QR_MCMRTNIN.SQL.Add('from mtltran a'); DATAM.QR_MCMRTNIN.SQL.Add('left join wipjob b on a.orderm_id=b.job_id'); DATAM.QR_MCMRTNIN.SQL.Add('left join mtlstorage c on a.tovst_id=c.st_id'); DATAM.QR_MCMRTNIN.SQL.Add('left join mtlinv d on a.inv_id=d.inv_id'); DATAM.QR_MCMRTNIN.SQL.Add('where a.state=1 and a.trantype_id="mcmrtnin"'); DATAM.QR_MCMRTNIN.SQL.Add('and a.OP_DATE BETWEEN :DAT1 AND :DAT2'); DATAM.QR_MCMRTNIN.SQL.Add('order by a.op_no'); DATAM.QR_MCMRTNIN.ParamByName('DAT1').AsDate:=DATETIMEPICKER1.Date; DATAM.QR_MCMRTNIN.ParamByName('DAT2').AsDate:=DATETIMEPICKER2.Date; DATAM.QR_MCMRTNIN.Prepare; DATAM.QR_MCMRTNIN.Open; |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
wangwb_1027
一般會員 發表:6 回覆:13 積分:3 註冊:2006-07-06 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
wangwb_1027
一般會員 發表:6 回覆:13 積分:3 註冊:2006-07-06 發送簡訊給我 |
|
chuang7287
初階會員 發表:1 回覆:20 積分:29 註冊:2002-10-22 發送簡訊給我 |
我不知道是不是你筆誤?
DATAM.QR_MCMRTNIN.SQL.Add('selecta.op_no,a.op_date,b.job_no,c.st_no,d.inv_no,convert(varchar(30),a.p_qty) as p_qty'); 請改為 DATAM.QR_MCMRTNIN.SQL.Add('select a.op_no,a.op_date,b.job_no,c.st_no,d.inv_no,convert(varchar(30),a.p_qty) as p_qty'); Select 與 a.op_no少個空白
------
結案=動力 高手等等我 .... 追隨高手永不懈怠!! |
wangwb_1027
一般會員 發表:6 回覆:13 積分:3 註冊:2006-07-06 發送簡訊給我 |
這些我都檢查過了確定沒有問題。convert(varchar(30),a.p_qty) as p_qty');是這一部分出了問題可能是類型設置錯了。我也不知道要怎樣設置。急求高手解答!!!
===================引 用 文 章=================== 我不知道是不是你筆誤? DATAM.QR_MCMRTNIN.SQL.Add('selecta.op_no,a.op_date,b.job_no,c.st_no,d.inv_no,convert(varchar(30),a.p_qty) as p_qty'); 請改為 DATAM.QR_MCMRTNIN.SQL.Add('select a.op_no,a.op_date,b.job_no,c.st_no,d.inv_no,convert(varchar(30),a.p_qty) as p_qty'); Select 與 a.op_no少個空白 |
chuang7287
初階會員 發表:1 回覆:20 積分:29 註冊:2002-10-22 發送簡訊給我 |
|
wangwb_1027
一般會員 發表:6 回覆:13 積分:3 註冊:2006-07-06 發送簡訊給我 |
我也有試過直接使用a.p_qty,不過運行的時候也有錯誤。謝謝這位大哥。我再想想其它辦法吧。
===================引 用 文 章=================== 說實在的要是真的查不出原因, 何不換個角度處理(雖然有點不求甚解!)? 你真正的目的不就是要將a.p_qty轉成文字型態,對吧! 作法: 1.放棄使用convert(varchar(30),a.p_qty) as p_qty直接使用a.p_qty 2.在程式中當你有要使用這個欄位時使用 DATAM.FieldByName('p_qty').AsString 一樣達到你要的目的 除非你有其他用途? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |