存檔的程式,為何存不進去? |
尚未結案
|
evoneliu
一般會員 發表:12 回覆:10 積分:4 註冊:2004-10-21 發送簡訊給我 |
dear :請問各位先進,以下這段存檔的程式,為何一直存不進去moalpf呢?
程式新增moalpfadoquery:Tadoquery;datasource1:Tdatasource dataset指向moalpfadoquery;dbedit1-19是由moalpfadoquery中拖曳至主畫面,執行查詢是沒問題的,但是查詢出來修改要存檔會存不進去!請問是否有何遺漏呢?謝謝各位指教! procedure Tfmmain.saveClick(Sender: TObject);
begin
moalpfadoquery.Close;
moalpfadoquery.SQL.CLEAR;
moalpfadoquery.SQL.ADD('select * from moalpf where moal01=:e_moal01');
moalpfadoquery.Parameters.ParamByName('e_moal01').value:=dbedit1.text;
moalpfadoquery.Open;
if moalpfadoquery.RecordCount> 0 then
begin
//修改
Screen.Cursor:=crAppStart;
moalpfadoquery.SQL.Clear;
moalpfadoquery.SQL.Add('UPDATE moalpf');
moalpfadoquery.SQL.Add('SET moal02=:e_moal02,');
moalpfadoquery.SQL.Add('moal03=:e_moal03,');
moalpfadoquery.SQL.Add('moal04=:e_moal04,');
moalpfadoquery.SQL.Add('moal05=:e_moal05,');
moalpfadoquery.SQL.Add('moal06=:e_moal06,');
moalpfadoquery.SQL.Add('moal07=:e_moal07,');
moalpfadoquery.SQL.Add('moal08=:e_moal08,');
moalpfadoquery.SQL.Add('moal09=:e_moal09,');
moalpfadoquery.SQL.Add('moal10=:e_moal10,');
moalpfadoquery.SQL.Add('moal11=:e_moal11,');
moalpfadoquery.SQL.Add('moal12=:e_moal12,');
moalpfadoquery.SQL.Add('moal13=:e_moal13,');
moalpfadoquery.SQL.Add('moal14=:e_moal14,');
moalpfadoquery.SQL.Add('moal15=:e_moal15,');
moalpfadoquery.SQL.Add('moal16=:e_moal16,');
moalpfadoquery.SQL.Add('moal17=:e_moal17,');
moalpfadoquery.SQL.Add('moal18=:e_moal18,');
moalpfadoquery.SQL.Add('moal19=:e_moal19');
moalpfadoquery.SQL.Add('WHERE moal01=:e_moal01');
moalpfadoquery.Parameters.ParamByName('e_moal02').value:=Trim(dbedit2.Text);
moalpfadoquery.Parameters.ParamByName('e_moal03').value:=Trim(dbedit3.Text);
moalpfadoquery.Parameters.ParamByName('e_moal04').value:=Trim(dbedit4.Text);
moalpfadoquery.Parameters.ParamByName('e_moal05').value:=Trim(dbedit5.Text);
moalpfadoquery.Parameters.ParamByName('e_moal06').value:=Trim(dbedit6.Text);
moalpfadoquery.Parameters.ParamByName('e_moal07').value:=Trim(dbedit7.Text);
moalpfadoquery.Parameters.ParamByName('e_moal08').value:=Trim(dbedit8.Text);
moalpfadoquery.Parameters.ParamByName('e_moal09').value:=Trim(dbedit9.Text);
moalpfadoquery.Parameters.ParamByName('e_moal10').value:=Trim(dbedit10.Text);
moalpfadoquery.Parameters.ParamByName('e_moal11').value:=Trim(dbedit11.Text);
moalpfadoquery.Parameters.ParamByName('e_moal12').value:=Trim(dbedit12.Text);
moalpfadoquery.Parameters.ParamByName('e_moal13').value:=Trim(dbedit13.Text);
moalpfadoquery.Parameters.ParamByName('e_moal14').value:=Trim(dbedit14.Text);
moalpfadoquery.Parameters.ParamByName('e_moal15').value:=Trim(dbedit15.Text);
moalpfadoquery.Parameters.ParamByName('e_moal16').value:=Trim(dbedit16.Text);
moalpfadoquery.Parameters.ParamByName('e_moal17').value:=Trim(dbedit17.Text);
moalpfadoquery.Parameters.ParamByName('e_moal18').value:=Trim(dbedit18.Text);
moalpfadoquery.Parameters.ParamByName('e_moal19').value:=Trim(dbedit19.Text);
moalpfadoquery.ExecSQL;
MessageDlg('航空資料' Trim(dbedit1.text) ' 修改完成 !', mtInformation, [mbOk], 0);
Screen.Cursor:=crArrow;
end
end
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi evoneliu, 既然 DBEdit1 ~ DBEtit19 資料來自 moalpfadoquery,為何不直接 Post moalpfadoquery 進行 Save 呢?
procedure TForm1.Button2Click(Sender: TObject); begin //修改 Screen.Cursor:=crAppStart; moalpfadoquery.Post; MessageDlg('航空資料' Trim(dbedit1.text) ' 修改完成 !', mtInformation, [mbOk], 0); Screen.Cursor:=crArrow; end;發表人 -
------
Fishman |
evoneliu
一般會員 發表:12 回覆:10 積分:4 註冊:2004-10-21 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 未處于dsInsert和dsEdit狀態的資料集元件是無法使用Post方法的﹒
procedure TForm1.Button2Click(Sender: TObject); begin //修改 Screen.Cursor:=crAppStart; moalpfadoquery.Edit; moalpfadoquery.Post; MessageDlg('航空資料' Trim(dbedit1.text) ' 修改完成 !', mtInformation, [mbOk], 0); Screen.Cursor:=crArrow; end;========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟 |
evoneliu
一般會員 發表:12 回覆:10 積分:4 註冊:2004-10-21 發送簡訊給我 |
DEAR :我了解了,我加了之後的確不會出現錯誤訊息了,不過仍舊存不進去,是否還有什麼遺漏的設定呢?另我有個疑問,為何dbedit1.text有秀在主畫面上,但是我抓蟲時,一直會是空白的,抓不到資料呢?會不會因為這樣所以,以下才會執行不成功呢? procedure Tfmmain.saveClick(Sender: TObject);
begin
moalpfadoquery.Close;
moalpfadoquery.SQL.CLEAR;
moalpfadoquery.SQL.ADD('select * from moalpf where moal01=:e_moal01');
【moalpfadoquery.Parameters.ParamByName('e_moal01').value:=dbedit1.text;】
moalpfadoquery.Open;
if moalpfadoquery.RecordCount> 0 then
begin
//修改
//……
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
evoneliu
一般會員 發表:12 回覆:10 積分:4 註冊:2004-10-21 發送簡訊給我 |
|
SnoopyChen
一般會員 發表:1 回覆:17 積分:18 註冊:2003-07-24 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
vinchenkimo
一般會員 發表:0 回覆:37 積分:17 註冊:2004-03-30 發送簡訊給我 |
剛剛在上傳區回了, 原來這裡有這麼多篇
dbedit1.txt bind到 moalpfadoquery.MOAL01
當你執行 moalpfadoquery.Close;
dbedit1.txt 的值當然會不見,之後當參數傳就是空白
query close前 用一個 local variable 來接當參數
就可以了 procedure Tfmmain.saveClick(Sender: TObject);
begin
moalpfadoquery.Close;
moalpfadoquery.SQL.CLEAR;
moalpfadoquery.SQL.ADD('select * from moalpf where moal01=:e_moal01');
【moalpfadoquery.Parameters.ParamByName('e_moal01').value:=dbedit1.text;】
moalpfadoquery.Open;
if moalpfadoquery.RecordCount> 0 then
begin
//修改
//……
|
tonytop
中階會員 發表:6 回覆:114 積分:89 註冊:2003-12-04 發送簡訊給我 |
用這種作法,要用另一adoquery來執行sql指令才行,不然會像上一位大大說的,close後沒值可傳參數進去了,且妳少傳最重要的:e_moal01這個參數喔
< class="code">
//修改
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update...');
ADOQuery1.SQL.Add('WHERE moal01=:e_moal01');
//e_moal01這個妳沒有在底下傳值,是否加上
ADOQuery1.Parameters.ParamByName('e_moal01').value:=Trim(dbedit1.Text);//少了這個吧!
ADOQuery1.ExecSQL;
//最後更新畫面
moalpfadoquery.Close;
moalpfadoquery.Open;
霧裡探花
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
請參考
procedure Tfmmain.SpeedButton1Click(Sender: TObject); var tq: TAdoQuery; stype: string; begin if moalpfadoquery.State in [dsInsert, dsEdit] then begin tq := TAdoQuery.Create(Self); try tq.Connection := moalpfadoquery.Connection; tq.SQL.ADD('select * from moalpf where moal01 = :e_moal01'); tq.Parameters.ParamByName('e_moal01').value := dbedit1.text; tq.Open; if tq.IsEmpty then begin //新增 stype := ' 新增完成 !'; Screen.Cursor := crAppStart; tq.Close; tq.SQL.Clear; tq.SQL.Add('insert moalpf'); tq.SQL.Add('(moal01,moal02,moal03,moal04,moal05,'); tq.SQL.Add('moal06,moal07,moal08,moal09,moal10,'); tq.SQL.Add('moal11,moal12,moal13,moal14,moal15,'); tq.SQL.Add('moal16,moal17,moal18,moal19)'); tq.SQL.Add('Values(:e_moal01,:e_moal02, :e_moal03, :e_moal04, :e_moal05,'); tq.SQL.Add(':e_moal06,:e_moal07, :e_moal08, :e_moal09, :e_moal10,'); tq.SQL.Add(':e_moal11,:e_moal12, :e_moal13, :e_moal14, :e_moal15,'); tq.SQL.Add(':e_moal16,:e_moal17, :e_moal18, :e_moal19)'); tq.Parameters.ParamByName('e_moal01').value := moalpfadoquery.FieldByName('e_moal01').Value; ; end else begin //修改 stype := ' 修改完成 !'; tq.Close; Screen.Cursor := crAppStart; tq.SQL.Clear; tq.SQL.Add('UPDATE moalpf'); tq.SQL.Add('SET moal02=:e_moal02,'); tq.SQL.Add('moal03=:e_moal03,'); tq.SQL.Add('moal04=:e_moal04,'); tq.SQL.Add('moal05=:e_moal05,'); tq.SQL.Add('moal06=:e_moal06,'); tq.SQL.Add('moal07=:e_moal07,'); tq.SQL.Add('moal08=:e_moal08,'); tq.SQL.Add('moal09=:e_moal09,'); tq.SQL.Add('moal10=:e_moal10,'); tq.SQL.Add('moal11=:e_moal11,'); tq.SQL.Add('moal12=:e_moal12,'); tq.SQL.Add('moal13=:e_moal13,'); tq.SQL.Add('moal14=:e_moal14,'); tq.SQL.Add('moal15=:e_moal15,'); tq.SQL.Add('moal16=:e_moal16,'); tq.SQL.Add('moal17=:e_moal17,'); tq.SQL.Add('moal18=:e_moal18,'); tq.SQL.Add('moal19=:e_moal19'); tq.SQL.Add('WHERE moal01=:e_moal01'); end; tq.Parameters.ParamByName('e_moal02').value := moalpfadoquery.FieldByName('e_moal02').Value; tq.Parameters.ParamByName('e_moal03').value := moalpfadoquery.FieldByName('e_moal03').Value; tq.Parameters.ParamByName('e_moal04').value := moalpfadoquery.FieldByName('e_moal04').Value; tq.Parameters.ParamByName('e_moal05').value := moalpfadoquery.FieldByName('e_moal05').Value; tq.Parameters.ParamByName('e_moal06').value := moalpfadoquery.FieldByName('e_moal06').Value; tq.Parameters.ParamByName('e_moal07').value := moalpfadoquery.FieldByName('e_moal07').Value; tq.Parameters.ParamByName('e_moal08').value := moalpfadoquery.FieldByName('e_moal08').Value; tq.Parameters.ParamByName('e_moal09').value := moalpfadoquery.FieldByName('e_moal09').Value; tq.Parameters.ParamByName('e_moal10').value := moalpfadoquery.FieldByName('e_moal10').Value; tq.Parameters.ParamByName('e_moal11').value := moalpfadoquery.FieldByName('e_moal11').Value; tq.Parameters.ParamByName('e_moal12').value := moalpfadoquery.FieldByName('e_moal12').Value; tq.Parameters.ParamByName('e_moal13').value := moalpfadoquery.FieldByName('e_moal13').Value; tq.Parameters.ParamByName('e_moal14').value := moalpfadoquery.FieldByName('e_moal14').Value; tq.Parameters.ParamByName('e_moal15').value := moalpfadoquery.FieldByName('e_moal15').Value; tq.Parameters.ParamByName('e_moal16').value := moalpfadoquery.FieldByName('e_moal16').Value; tq.Parameters.ParamByName('e_moal17').value := moalpfadoquery.FieldByName('e_moal17').Value; tq.Parameters.ParamByName('e_moal18').value := moalpfadoquery.FieldByName('e_moal18').Value; tq.Parameters.ParamByName('e_moal19').value := moalpfadoquery.FieldByName('e_moal19').Value; tq.ExecSQL; MessageDlg('航空資料' Trim(dbedit1.text) stype, mtInformation, [mbOk], 0); Screen.Cursor := crArrow; finally FreeAndNil(tq); end; end;在個人感覺這個方法不是很好,只能救急,最好妳的流程再改過 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |