ADOQuery & BatchUpdate之問題 |
尚未結案
|
her5405
一般會員 發表:6 回覆:1 積分:1 註冊:2004-12-19 發送簡訊給我 |
環境:Delphi5 SQL2000 Windows2000
qyMaster--> SELECT ProgramID,ProgramName FROM ProgramList qyDetail--> SELECT U.ProgramID,U.UserID,U.RunChk,U.AppendChk,U.EditChk,U.DeleChk,
U.ReportChk,P.UserName FROM UserAuthority AS U JOIN UserList AS P
ON U.ProgramID=:Program AND U.P.UserID 用 ProgramID 關聯Mater/Detail 在BatchUpdate時我不想更新 UserList資料表如何辦到..... 一個困惑的新手請各位大大不吝賜教,在此先行謝謝各位大大......
|
borland_delphi70
中階會員 發表:8 回覆:50 積分:51 註冊:2002-12-06 發送簡訊給我 |
1.不要直接把你要 join 的欄位與 Table 寫在 Query1 的 SQL Statement 中,改為SELECT ProgramID,UserID,RunChk,AppendChk,EditChk,DeleChk,
ReportChk FROM UserAuthority。 2.建立另一組 Query2 其 SQL Statement 為 SELECT UserID,UserName FROM UserList。 3.在你原先的 Query1 中增加自訂 Field 並設定:
FieldType 為 Lookup
KeyFields 為 UserID
DataSet 為 Query1 如此即可得到你要的效果 對我而言,程式設計是一場令人興奮又刺激的惡夢
|
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
qyDetail-->
SELECT * FROM UserAuthority WHERE ProgramID = :ProgramID 再加一個 qyUser-->
SELECT * FROM UserList WHERE UserID = :UserID 在 qyDetail 的 Fields 加入 Calculated 欄位 RunChk, AppendChk, EditChk, DeleChk, ReportChk, UserName 並注意型態. 在 qyDetail.OnCalcFields 加入程式
procedure TForm1.qy_dCalcFields(DataSet: TDataSet); begin qyUser.Close; qyUser.ParamByName('UserID').AsString := DataSet.FieldByName('UserID').AsString; qyUser.Open; DataSet.FieldByName('RunChk').AsBoolean := DataSet.FieldByName('RunChk').AsBoolean; // AppendChk, EditChk, DeleChk.... DataSet.FieldByName('UserName').AsString := DataSet.FieldByName('UserName').AsString; qyUser.Close; end;我是雪龍 發表人 - bestlong 於 2005/01/25 12:41:31
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
BatchUpdate 那就是用 ADO 了
procedure TForm1.qy_dCalcFields(DataSet: TDataSet); begin qyUser.Close; qyUser.Parameters.ParamByName('UserID').AsString := DataSet.FieldByName('UserID').AsString; qyUser.Open; DataSet.FieldByName('RunChk').AsBoolean := DataSet.FieldByName('RunChk').AsBoolean; // AppendChk, EditChk, DeleChk.... DataSet.FieldByName('UserName').AsString := DataSet.FieldByName('UserName').AsString; qyUser.Close; end;我是雪龍
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |