資料加總問題 |
答題得分者是:chih
|
sword185
一般會員 發表:36 回覆:81 積分:23 註冊:2002-06-05 發送簡訊給我 |
請教各位先進
Var
T:String;
begin
// ==從1日 ~ 31日 加總===
DM_DataBase.ADOQ_WorkpeoplFeat.Close;
DM_DataBase.ADOQ_WorkpeoplFeat.SQL.Clear;
DM_DataBase.ADOQ_WorkpeoplFeat.SQL.Add('Select * From 員工業績總表 where 姓名=''' DBLCbx_Name.Text ''' and (Select Sum(業績) As ''' T ''' From 員工業績總表)');
DM_DataBase.ADOQ_WorkpeoplFeat.Open;
showmessage(T);
end; 為何T無資料
|
zong
初階會員 發表:11 回覆:51 積分:42 註冊:2002-08-18 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
如同 chih 前輩的說明, T 只是在 delphi 中的一個變數, 所以要將結果存入 T 中, 必須再使用 Fields 的相關函數才行, 另外你原來的 SQL command 也是有問題的, 也必須一併修改, 建議修改程式如下:
Var T:String; begin // ==從1日 ~ 31日 加總=== DM_DataBase.ADOQ_WorkpeoplFeat.Close; DM_DataBase.ADOQ_WorkpeoplFeat.SQL.Clear; |
sword185
一般會員 發表:36 回覆:81 積分:23 註冊:2002-06-05 發送簡訊給我 |
T := IntToStr(DM_DataBase.ADOQ_WorkpeoplFeat.FieldByName('TOTSALES').AsString;
執行這一行出現的訊息
[Error] Unit_CalculateFeat.pas(408): There is no overloaded version of 'IntToStr' that can be called with these arguments 怎麼將計算出來的資料寫入另一個資料(薪資表)表的當月業績裡 發表人 - sword185 於 2003/05/02 09:59:27
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: T := IntToStr(DM_DataBase.ADOQ_WorkpeoplFeat.FieldByName('TOTSALES').AsString; 執行這一行出現的訊息 [Error] Unit_CalculateFeat.pas(408): There is no overloaded version of 'IntToStr' that can be called with these arguments 怎麼將計算出來的資料寫入另一個資料(薪資表)表的當月業績裡Sorry, 後面已用了 .AsString 前面就不用轉了.... |
sword185
一般會員 發表:36 回覆:81 積分:23 註冊:2002-06-05 發送簡訊給我 |
Var
T:String;
begin
// ==從1日 ~ 31日 加總===
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Sum(業績) AS TOTSALES From 員工業績總表 where 姓名=''' Edit1.Text ''' ');
ADOQuery1.Open;
If not ADOQuery1.IsEmpty Then
Begin
T := IntToStr(ADOQuery1.FieldByName('TOTSALES').AsInteger);
End;
showmessage(T);
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('UPDATE 員工薪資表 SET 當月總業績=''' T ''' where 姓名=''' Edit1.Text ''' ');
ADOQuery2.Open;
end; UPDATE........有錯
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
其實你的T可以不用宣告了...改成這樣...
begin // ==從1日 ~ 31日 加總=== ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select Sum(業績) AS TOTSALES From 員工業績總表 where 姓名=''' Edit1.Text ''' '); ADOQuery1.Open; If not ADOQuery1.IsEmpty Then Begin showmessage(ADOQuery1.FieldByName('TOTSALES').AsString); ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('UPDATE 員工薪資表 SET 當月總業績=' #39 ADOQuery1.FieldByName('TOTSALES').AsString #39 ' where 姓名=' #39 Edit1.Text #39'); ADOQuery2.ExecSQL; End; end; |
sword185
一般會員 發表:36 回覆:81 積分:23 註冊:2002-06-05 發送簡訊給我 |
非常謝謝您 // ==從1日 ~ 31日 加總===
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Sum(業績) AS TOTSALES From 員工業績總表 where 姓名=''' Edit1.Text ''' ');
ADOQuery1.Open;
If not ADOQuery1.IsEmpty Then
Begin
showmessage(ADOQuery1.FieldByName('TOTSALES').AsString);
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('UPDATE 員工薪資表 SET 當月總業績=' #39 ADOQuery1.FieldByName('TOTSALES').AsString #39 ' where 姓名=' #39 Edit1.Text #39'');//應該要'');
ADOQuery2.ExecSQL;
End;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |