Q&A

  • Query Update시 에러발생?????
안녕하십니까?





저는 고객데이타를 읽어 고객의 후원인이 Table1에 존재하면

고객의 후원인 Index의 다음 번호로 레코드를 추가하고

후원인이 존재하지 않으면 Table1의 레코드수를 Index로 하여

가장 마지막 부분에 추가하려고 합니다.



그런데 처음 아래의 루틴을 실행하면 제가 원하는 데로 잘 실행되나

다시 아래의 루틴을 실행하면 실행하다가

access violation at 0x4be42b91:read of address ....라든

에러가 발생합니다.



정말, 무엇이 잘못인지 모르겠습니다.



고수님의 답변을 부탁드립니다.









procedure TFormOrgChart.NewBtnClick(Sender: TObject);

var

i,k:integer;

tInx,tLevel,tID,uLevel:integer;

tName,tPart:string;



procedure TableAppend;

begin

with Query1 do

begin

Close;

SQL.Clear;

SQL.Add('Update ' + TreeTable.TableName + ' T');

SQL.Add('Set T."INDEX" = T."INDEX" + 1');

SQL.Add('Where T."INDEX" >= ' + IntToStr(tInx));

ExecSQL;

Close;

SQL.Clear;

end;



Table1.Append;

Table1.FieldByName('Index').AsInteger := tInx;

Table1.FieldByName('Level').AsInteger := tLevel;

Table1.FieldByName('이름').AsString := tName;

Table1.FieldByName('고객ID').AsInteger := tID;

Table1.Post;

end;







Table1.IndexName := '고객ID_Inx'; // Primary Key 'Index';

Table1.Close;

TableCreateTable; // 초기화 부분

Table1.Open;





CustomQuery.Close;

CustomQuery.SQL.Add(Select * from Custom.db';

CustomQuery.SQL.Add('Order by 직급, 등록일자, 고객ID');

if not CustomQuery.Prepared then CustomQuery.Prepare;

CustomQuery.Open;



while not CustomQuery.Eof do

begin

if Table1.FindKey(CustomQuery.FieldByName('후원인').AsInteger) then

tInx := Table1.FieldByName('Index').AsInteger + 1

else tInx := Table1.RecourdCount;

tName := CustomQuery.FieldByName('고객명').AsString;

tID := CustomQuery.FieldByName('고객ID').AsInteger;

tLevel := CustomQuery.FieldByName('직급').AsInteger;





TableAppend;



CustomQuery.Next;

end;

0  COMMENTS