Interbase를 이용하여 프로그램을 만들려고 합니다.
UpdateSQL을 이용하여 처음엔 append, post, delete등 모두 잘 됩니다.
그런데 조금 복잡해지면 계속 list index out of bounds(0) error가 납니다.
소스를 보면서 설명하면
procedure TForm1.Button1Click(Sender: TObject);
//추가 버튼을 누르면 query3으로 max값을 얻습니다. 일련번호입니다.
var newemp:integer;
begin
with DataModule2.IBQuery3 do begin
close;
SQL.clear;
SQL.add('select max(empno) from yellowbook');
Open;
end;
newemp:=DataModule2.IBQuery3.FieldByName('max').AsInteger+1;
DBNavigator1.BtnClick(nbInsert);
DBEdit1.Text:=IntToStr(newemp);
DBEdit2.Setfocus;
end;
procedure TForm1.Button3Click(Sender: TObject); //이곳이 저장 버튼인데 여기만 누르면 에러가 납니다.
begin
DBNavigator1.BtnClick(nbPost);
end;
procedure TForm1.Button4Click(Sender: TObject); 여긴 디테일 인데 여긴 똑같은데 잘됩니다.
var yy : integer;
begin
if Edit1.Text<>'' then begin
with DataModule2.IBQuery2 do begin
yy:=DataModule2.IBQuery2.RecordCount+1;
Append;
FieldByName('cid').AsString:=IntToStr(yy);
FieldByName('empno').AsString:=DBEdit1.Text;
FieldByName('cdate').AsDateTime:=Now;
FieldByName('progress').AsString:=Edit1.Text;
Post;
ApplyUpdates;
end;
Edit1.Text:='';
end;
end;
도와 주십시오..
DBEdit를 여러개 만들고 DBNavigator를 하나 만들어서 저장을 누르면 DBNavigator의 post button을 눌러서 저장하고 저장하고 싶습니다.
왜? out of bounds에러가 나는지 아시는분 도와주십시오....