SQL語法請教 |
答題得分者是:cmj
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
各位前輩 小弟程式碼如下, 但出現出錯信息:[Error] Unit1.pas(75): Undeclared identifier: 'Query1Name' 請前輩指點. procedure TForm1.FormActivate(Sender: TObject);
begin
UpdateSQL1.InsertSQL.Clear;
UpdateSQL1.InsertSQL.Add('Insert Into Test.Dbf');
UpdateSQL1.InsertSQL.Add('(Name,Good,Id)');
UpdateSQL1.InsertSQL.Add('Values');
UpdateSQL1.InsertSQL.Add('(:Name,:Good,:Id)'); UpdateSQL1.ModifySQL.Clear;
UpdateSQL1.ModifySQL.Add('Update Test.Dbf');
UpdateSQL1.ModifySQL.Add('Set');
UpdateSQL1.ModifySQL.Add('Name=:Name,');
UpdateSQL1.ModifySQL.Add('Good=:Good,');
UpdateSQL1.ModifySQL.Add('Id=:Id');
UpdateSQL1.ModifySQL.Add('Where Id=:Old_Id'); UpdateSQL1.DeleteSQL.Clear;
UpdateSQL1.DeleteSQL.Add('Delete From Test.Dbf');
UpdateSQL1.DeleteSQL.Add('Where Id=Old_Id'); Query1.CachedUpdates:=True;
Query1.UpdateObject:=UpdateSQL1; Query1.DatabaseName:= GetCurrentDir;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From Test.Dbf');
Query1.Close;
Query1.Open; Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=False;
Button5.Enabled:=False;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Append;
Query1Name.Value := '' ; //出現錯誤處
Query1Good.Value := False;
Query1Id.Value := '' ; Button1.Enabled:=False;
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=True;
Button5.Enabled:=True;
end; end. Delphi新手﹐懇請各位前輩多多指教﹗謝謝您﹗
忻晟
------
忻晟 |
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
引言: ddy大大, 小弟有查過了原始的程式碼, 發現小弟的程式碼中在Type區域少了如下程式碼: Type ... ... Query1Name: TStringFiled; Query1Good: TBooleanFiled; Query1Id: TStringFiled; 這些是Query1元件內定義的Field,在Query1以Mouse點二下去檢查是否被DELETE 了,新增即可 ... ... 但小弟不知道這里的程式碼在表單中何處設定. 誠懇感謝您的指教! Delphi新手﹐懇請各位前輩多多指教﹗謝謝您﹗ 忻晟發表人 - cmj 於 2003/04/29 21:55:43 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
此問題已解決,謝謝cmj先進的指點.
但小弟在新增一筆資料時出現此錯誤信息.No User Transaction is Currently in Progress. 小弟完整程式碼如下, 請問先進, 此問題是何處引起的. unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables; type
TForm1 = class(TForm)
Database1: TDatabase;
Query1: TQuery;
UpdateSQL1: TUpdateSQL;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Query1NAME: TStringField;
Query1GOOD: TBooleanField;
Query1ID: TStringField;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject);
begin
UpdateSQL1.InsertSQL.Clear;
UpdateSQL1.InsertSQL.Add('Insert Into Test.Dbf');
UpdateSQL1.InsertSQL.Add('(Name,Good,Id)');
UpdateSQL1.InsertSQL.Add('Values');
UpdateSQL1.InsertSQL.Add('(:Name,:Good,:Id)'); UpdateSQL1.ModifySQL.Clear;
UpdateSQL1.ModifySQL.Add('Update Test.Dbf');
UpdateSQL1.ModifySQL.Add('Set');
UpdateSQL1.ModifySQL.Add('Name=:Name,');
UpdateSQL1.ModifySQL.Add('Good=:Good,');
UpdateSQL1.ModifySQL.Add('Id=:Id');
UpdateSQL1.ModifySQL.Add('Where Id=:Old_Id'); UpdateSQL1.DeleteSQL.Clear;
UpdateSQL1.DeleteSQL.Add('Delete From Test.Dbf');
UpdateSQL1.DeleteSQL.Add('Where Id=Old_Id'); Query1.CachedUpdates:=True;
Query1.UpdateObject:=UpdateSQL1; Query1.DatabaseName:= GetCurrentDir;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From Test.Dbf');
Query1.Close;
Query1.Open; Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=False;
Button5.Enabled:=False;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Append;
Query1Name.Value := '' ;
Query1Good.Value := False;
Query1Id.Value := '' ; Button1.Enabled:=False;
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=True;
Button5.Enabled:=True;
end; procedure TForm1.Button2Click(Sender: TObject);
begin
Query1.Edit; Button1.Enabled:=False;
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=True;
Button5.Enabled:=True;
end; procedure TForm1.Button3Click(Sender: TObject);
begin
Query1.Delete; Try
DataBase1.StartTransaction;
Query1.ApplyUpdates;
Query1.CommitUpdates;
DataBase1.Commit;
Except
DataBase1.Rollback;
Query1.CancelUpdates;
ShowMessage('存檔失敗');
end;
end; procedure TForm1.Button4Click(Sender: TObject);
begin
Try
Query1.Post;
DataBase1.StartTransaction;
Query1.ApplyUpdates;
Query1.CommitUpdates;
DataBase1.Commit;
Except
DataBase1.Rollback;
Query1.CancelUpdates;
ShowMessage('存檔失敗');
end; Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=False;
Button5.Enabled:=False;
end; procedure TForm1.Button5Click(Sender: TObject);
begin
Query1.Cancel; Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=False;
Button5.Enabled:=False;
end; end. Delphi新手﹐懇請各位前輩多多指教﹗謝謝您﹗
忻晟
------
忻晟 |
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
procedure TForm1.Button3Click(Sender: TObject);
begin
Query1.Delete; Try
//DataBase1.StartTransaction;
Query1.ApplyUpdates;
Query1.CommitUpdates;
//DataBase1.Commit;
Except
//DataBase1.Rollback;
Query1.CancelUpdates;
ShowMessage('存檔失敗');
end;
end; procedure TForm1.Button4Click(Sender: TObject);
begin
Try
Query1.Post;
//DataBase1.StartTransaction;
Query1.ApplyUpdates;
Query1.CommitUpdates;
//DataBase1.Commit;
Except
//DataBase1.Rollback;
Query1.CancelUpdates;
ShowMessage('存檔失敗');
end; Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=False;
Button5.Enabled:=False;
end;
因為你用dbf檔不支援交易,所以紅色部份程式不能用
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |