全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1922
推到 Plurk!
推到 Facebook!

拜托各位检查一下我的ADOQuery参数赋值,错在哪里?

尚未結案
lovelvye
一般會員


發表:5
回覆:10
積分:3
註冊:2003-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-22 10:06:57 IP:61.177.xxx.xxx 未訂閱
SQL: SELECT 工资.编号, 工资.期间, 人事.姓名, 隶属部门.隶属部门, 工资.出勤, 工资.已发, 工资.福利, 工资.留存, 工资.满勤奖, 工资.夜餐中, 工资.夜餐夜, 工资.夜餐金额, 工资.加班费, 工资.扣款, 工资.补贴, 工资.补贴备注, 工资.养老保险, 已发 留存 AS 合计 FROM 人事 RIGHT JOIN (隶属部门 RIGHT JOIN 工资 ON 隶属部门.编号 = 工资.隶属部门) ON 人事.编号 = 工资.职工编号 WHERE 工资.期间=:ym; 给参数ym赋值: Form9.ADOQuery1.Parameters[0].Value := (IntToStr(DBNumberEditEh1.Value) FormatFloat('00', DBNumberEditEh2.Value)); 返回数据集的记录数居然为0,而实际上是有数据的。 环境: Win2000 Delphi 7 Access XP ADO 2.7 發表人 - lovelvye 於 2003/03/22 10:13:09
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-22 14:15:58 IP:202.159.xxx.xxx 未訂閱
沒有你的數據庫很難測試 如果你的 '工資.期間' 是字元欄位, Form9.ADOQuery1.Parameters[0].Value := (IntToStr(DBNumberEditEh1.Value) + FormatFloat('00', DBNumberEditEh2.Value)); 改為 Form9.ADOQuery1.Parameters[0].AsString := (IntToStr(DBNumberEditEh1.Value) + FormatFloat('00', DBNumberEditEh2.Value)); 試試看 /*
lovelvye
一般會員


發表:5
回覆:10
積分:3
註冊:2003-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-22 16:08:37 IP:61.177.xxx.xxx 未訂閱
TParameters没有AsString属性,只有DataType属性,我已设置为ftString了, 工资.期间 的DataType属性也是ftString,可是错误仍旧有。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-22 17:55:30 IP:218.32.xxx.xxx 未訂閱
抱歉,看成 BDE TQuery.params property
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-22 18:24:39 IP:61.10.xxx.xxx 未訂閱
提議你試試以下的 : 1. 是否 Parameters 有問題? 你試試加一個 TEdit (Edit1) 到 Form 然後試試 Edit1.Text := (IntToStr(DBNumberEditEh1.Value) FormatFloat('00', DBNumberEditEh2.Value)); 將 Edit1 的內容 copy 到 ADOQuery1 直接取代 :ym (要加引號) 看看有沒有資料 2. 若 1 也沒有資料,再試試將該 SQL copy 到 Access 試試有沒有資料,若也沒有即是正常啦,若有即是 Delphi 處理該 SQL 出現問題,可再試試 3. 全部中文加上引號,如 '工资'.'编号' 不一定能解決,但最起碼幫助找出問題出在那裡。
lovelvye
一般會員


發表:5
回覆:10
積分:3
註冊:2003-03-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-23 12:43:58 IP:61.177.xxx.xxx 未訂閱
to justmade SQL语句在Access中执行是没有问题的,包括带参数。 Delphi执行中我也用 caption := (IntToStr(DBNumberEditEh1.Value) FormatFloat(''00'', DBNumberEditEh2.Value)); 读出参数值,正确。 加'这个方法我也试过,用QuotedStr函数,结果仍是一样,没有记录。
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-23 13:52:51 IP:61.10.xxx.xxx 未訂閱
有沒有試過刪除了 " WHERE 工资.期间=:ym " 看看有沒有資料,若有,又有沒有包含了你 Caption 的條件的資料 ?
lovelvye
一般會員


發表:5
回覆:10
積分:3
註冊:2003-03-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-23 16:04:57 IP:61.177.xxx.xxx 未訂閱
to justmade 你说的方法我基本上都试过了,没有变化。
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-23 17:30:07 IP:218.160.xxx.xxx 未訂閱
你的sql好像有點問題 改成下面這樣試試 SELECT 工资.编号, 工资.期间, 人事.姓名, 隶属部门.隶属部门, 工资.出勤, 工资.已发, 工资.福利, 工资.留存, 工资.满勤奖, 工资.夜餐中, 工资.夜餐夜, 工资.夜餐金额, 工资.加班费, 工资.扣款, 工资.补贴, 工资.补贴备注, 工资.养老保险, 已发 留存 AS 合计 FROM 人事 RIGHT JOIN 工资 ON (人事.编号 = 工资.职工编号) RIGHT JOIN 隶属部门 (ON 隶属部门.编号 = 工资.隶属部门) WHERE 工资.期间=:ym; 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
系統時間:2024-06-24 19:54:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!