Q&A

  • ZEOS UPDATESQL을 쓰는데요.....
BDE 없이 ZEOS콤포넌트를 깔아서 쓰고 있는데요.. ZUPDATESQL을 이용해서 UPDATE를

할려고 하는데요 ZDBGRID에 데이타를 집어넣고 화살표를 아래 방향으로 내리면 기본

콤포넌트에서는 INSERT가 됐었는데 ZEOS를 쓰면 그리드 상의 맨 위에 있는 데이타가

PARAM값으로 들어 가더라구요. DELETE는 제대로 되는데 BEFOREPOST에서의 NEWFIELD에

자꾸 그리드 상의 맨 위의 데이타가 들어갑니다.

소스좀 봐 주시고 아시는 분 있으면 연락좀 바랍니다.

즐거운 하루 되세요....



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Db, ZTransact, ZOraSqlTr, ZUpdateSql, ZQuery, ZOraSqlQuery, ZConnect,

ZOraSqlCon, StdCtrls, Grids, DBGrids, ComCtrls, ZGrid;



type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Button8: TButton;

Button3: TButton;

Edit4: TEdit;

Button10: TButton;

Button11: TButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

TabSheet2: TTabSheet;

Label2: TLabel;

DBG_Hotel: TDBGrid;

Button4: TButton;

Button6: TButton;

Button7: TButton;

Button9: TButton;

Edit2: TEdit;

Edit3: TEdit;

Button5: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Ds_Tour: TZOraSqlDatabase;

Qry_Hotel: TZOraSqlQuery;

Up_Hotel: TZUpdateSql;

ZOraTransact: TZOraSqlTransact;

Ds_Hotel: TDataSource;

Up_State: TZUpdateSql;

Ds_State: TDataSource;

Query1: TZOraSqlQuery;

Query2: TZOraSqlQuery;

Qry_HotelSTATECODE: TStringField;

Qry_HotelHOTELCODE: TStringField;

Qry_HotelENGNAME: TStringField;

Qry_HotelKORNAME: TStringField;

Qry_HotelURL: TStringField;

Qry_State: TZOraSqlQuery;

Qry_StateSTATECODE: TStringField;

Qry_StateENGNAME: TStringField;

Qry_StateKORNAME: TStringField;

DBG_State: TZDBGrid;

procedure Button9Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Qry_StateBeforeDelete(DataSet: TDataSet);

procedure Qry_StateBeforePost(DataSet: TDataSet);

procedure Qry_HotelBeforeDelete(DataSet: TDataSet);

procedure Qry_HotelBeforePost(DataSet: TDataSet);

procedure Button5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private



{ Private declarations }

HtSteCode : String;

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.Button9Click(Sender: TObject);

begin

Qry_Hotel.Active := False;

Qry_Hotel.ParamByName('StateCode').asString := Edit2.Text;

Qry_Hotel.Active := True;

Qry_State.Active := False;

Qry_State.ParamByName('StateCode').asString := Edit2.Text;

Qry_State.Active := True;

Edit3.Text := Qry_State.FieldByName('KorName').asString;

end;



procedure TForm1.Button3Click(Sender: TObject);

begin

Qry_State.Active := False;

Qry_State.ParamByName('StateCode').asString := Edit1.Text;

Qry_State.Active := True;

end;



procedure TForm1.Button11Click(Sender: TObject);

begin

if RadioButton3.Checked = True then

begin

Qry_State.Active := False;

Qry_State.SQL.Clear;

Qry_State.SQL.Add('SELECT STATECODE, ENGNAME, KORNAME ' +

'FROM STATE ' +

'WHERE STATECODE LIKE '''+Edit1.Text+''' || ''%'' ' +

'Order By EngName ');

Qry_State.Active := True;

end

else if RadioButton4.Checked = True then

begin

Qry_State.Active := False;

Qry_State.SQL.Clear;

Qry_State.SQL.Add('SELECT STATECODE, ENGNAME, KORNAME ' +

'FROM STATE ' +

'WHERE STATECODE LIKE '''+Edit1.Text+''' || ''%'' ' +

'Order By KorName ');

Qry_State.Active := True;

end;

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

Qry_State.Insert;

end;



procedure TForm1.Button2Click(Sender: TObject);

begin

Qry_State.Delete;

end;



procedure TForm1.Button8Click(Sender: TObject);

begin

Close;

end;



procedure TForm1.Qry_StateBeforeDelete(DataSet: TDataSet);

begin

Up_State.Apply(ukDelete);

end;



procedure TForm1.Qry_StateBeforePost(DataSet: TDataSet);

begin

Try

if Ds_State.State = dsInsert then

begin

Up_State.Apply(ukInsert);

end

else if Ds_State.State = dsEdit then

Up_State.Apply(ukModify);

Except

MessageDlg('저장이 취소되었습니다.',mtError, [mbOK], 0);

Button2Click(self);

End;

end;



procedure TForm1.Qry_HotelBeforeDelete(DataSet: TDataSet);

begin

Up_Hotel.Apply(ukDelete);

end;



procedure TForm1.Qry_HotelBeforePost(DataSet: TDataSet);

begin

Try

if Ds_hotel.State = dsInsert then begin

Qry_HotelSTATECODE.AsString := edit2.Text;

with Query1 do begin

Active := False;

ParamByName('statecode').asString := UpperCase(Qry_Hotel.FieldByName('StateCode').asString);

HtSteCode := UpperCase(Qry_Hotel.FieldByName('StateCode').asString);

Active := True;

Qry_HotelHOTELCODE.AsString := FieldByName('HOTELMax').asString;

end;

Up_Hotel.Apply(ukInsert)

end

else if Ds_hotel.State = dsEdit then

Up_Hotel.Apply(ukModify);

Except

MessageDlg('저장이 취소되었습니다.',mtError, [mbOK], 0);

Button6Click(self);

End;

end;



procedure TForm1.Button5Click(Sender: TObject);

begin

if RadioButton1.Checked = True then

begin

Qry_Hotel.Active := False;

Qry_Hotel.SQL.Clear;

Qry_Hotel.SQL.Add('SELECT STATECODE, HOTELCODE, ENGNAME, KORNAME, URL ' +

'FROM HOTEL ' +

'WHERE STATECODE = '''+Edit2.Text+''' ' +

'Order By EngName ');

Qry_Hotel.Active := True;

end

else if RadioButton2.Checked = True then

begin

Qry_Hotel.Active := False;

Qry_Hotel.SQL.Clear;

Qry_Hotel.SQL.Add('SELECT STATECODE, HOTELCODE, ENGNAME, KORNAME, URL ' +

'FROM HOTEL ' +

'WHERE STATECODE = '''+Edit2.Text+''' ' +

'Order By KorName ');

Qry_Hotel.Active := True;

end;

end;



procedure TForm1.Button4Click(Sender: TObject);

begin

Qry_Hotel.Insert;

end;



procedure TForm1.Button6Click(Sender: TObject);

begin

Qry_Hotel.Delete;

end;



procedure TForm1.Button7Click(Sender: TObject);

begin

Close;

end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := Cafree;

if Qry_State.Active then Qry_State.Active := False;

if Qry_Hotel.Active then Qry_Hotel.Active := False;

end;



end.





0  COMMENTS