테이블에 연결되어있는 자료를 검색해서 지우는 함수를 만들엇습니다.
그런데 컴파일은 제대로 되는데 함수를 실행시키면 'table1:field 'name' not found'
란 에러가 나옵니다.
제가 필드를 넘기는 방법이 잘못된건지...
분명 테이블에는 name필드가 있읍니다.
이문제때문에 몇시간 골머리를 석히고 있습니다.
잘아시는분들의 답변 부탁드립니다.
function Del_Sel_Tbl(Tablename:Ttable;DBName:String; Fieldname:tfield; Del_record:string; truefalse:boolean):integer;
var i:integer; label theend;
begin
Jcy_Table_Set(Tablename, dbname);
Tablename.open;
if Tablename.recordcount > 0 then
begin
Tablename.close;
Tablename.open;
Tablename.edit;
Tablename.First;
i:=0;
while Tablename.Eof=False do
begin
if Fieldname.asstring = Del_record then
begin
if truefalse = true then Tablename.delete;
if truefalse = true then Fieldname.asstring:= '1';
Tablename.post;
Tablename.close;
goto theend;
result := 1;
end;
i:=i+1;
Tablename.Next;
End;
Tablename.Close;
result := 0;
end
else result := -1;
theend:
end;
사용할때는 이렇게 사용했습니다.
Del_Sel_Tbl( mainform.table1,'fir_customer.DB', mainform.table1.FieldByName('name'), All_customer_Grid.cells[0,All_customer_Grid.row],false);
Jcy_Table_Set이란 함수는 뭔지 잘 모르겠구요..
필드를 찾아서 지우고 넘겨준 필드에는 '1'을 넣는거 맞나요?
찾느루틴이 문제인것 같은데.. 테이블 콤포넌트에 보시면
TAble1.Locate 라는 함수가 있거든요?
이걸 이용하시면 간단하게 될것 같은데..
필드이름과, 값 그리고 찾는 옵션을 넣어주면 해당 레코더로 이동합니다.
그럼.. 즐거운시간 되세요.