Q&A

  • Table을 지우고 새로 생성시 'Table Is Busy' Error
소스를 보아주십시오.

INI파일을 읽어서 먼저있던 테이블을 지우고 새테이블을 만들려고 하는데

자구만 Table Is Busy 에러가 생깁니다.

메인폼에 열려있는 테이블을 지우고 다시 만드는것인데 만약 먼저있던

테이블이 열려있다면 이함수에서 어떻게 해줘야 할까요?

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



var Myini : Tinifile; StrList:TStringList; StrListCount,i:Integer;

begin

Myini := Tinifile.Create('c:yangyang1.INI');

with Myini do

begin

StrList := TStringList.Create;

Myini.ReadSection('In_DanKa',strlist);

StrListCount := strlist.count;



for i := 0 to StrListCount -1 do

begin

Myini.DeleteKey('In_DanKa', StrList[i]);

Myini.DeleteKey('Out_DanKa', StrList[i]);

end;

Myini.Free;

end;

taTEST := TTable.Create(Application);

with tatest do begin

taTEST.Active := False;

taTEST.DatabaseName := 'C:YANGDat';

taTEST.TableName := 'Panmae.db';

taTEST.TableType := ttParadox;

with FieldDefs do

begin

taTEST.FieldDefs.Clear;

taTEST.FieldDefs.Add('판매일', ftString, 10,FALSE);

taTEST.FieldDefs.Add('거래처명', ftString, 20,FALSE);

taTEST.FieldDefs.Add('총판매대금',ftInteger, 0,FALSE);

taTEST.FieldDefs.Add('회수금', ftInteger, 0,FALSE);



taTest.CreateTable;// <=이부분에서 자구만 Table Is Busy 에러가 생깁니다.

taTEST.Active := True;

end;

1  COMMENTS
  • Profile
    류종택 2001.04.03 12:58
    같은 테이블이 열려있는 모든 프로그램 또는 콤포넌트를 닫고

    다시 해보세요..





    From 류..



    김정태 wrote:

    > 소스를 보아주십시오.

    > INI파일을 읽어서 먼저있던 테이블을 지우고 새테이블을 만들려고 하는데

    > 자구만 Table Is Busy 에러가 생깁니다.

    > 메인폼에 열려있는 테이블을 지우고 다시 만드는것인데 만약 먼저있던

    > 테이블이 열려있다면 이함수에서 어떻게 해줘야 할까요?

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

    >

    > var Myini : Tinifile; StrList:TStringList; StrListCount,i:Integer;

    > begin

    > Myini := Tinifile.Create('c:yangyang1.INI');

    > with Myini do

    > begin

    > StrList := TStringList.Create;

    > Myini.ReadSection('In_DanKa',strlist);

    > StrListCount := strlist.count;

    >

    > for i := 0 to StrListCount -1 do

    > begin

    > Myini.DeleteKey('In_DanKa', StrList[i]);

    > Myini.DeleteKey('Out_DanKa', StrList[i]);

    > end;

    > Myini.Free;

    > end;

    > taTEST := TTable.Create(Application);

    > with tatest do begin

    > taTEST.Active := False;

    > taTEST.DatabaseName := 'C:YANGDat';

    > taTEST.TableName := 'Panmae.db';

    > taTEST.TableType := ttParadox;

    > with FieldDefs do

    > begin

    > taTEST.FieldDefs.Clear;

    > taTEST.FieldDefs.Add('판매일', ftString, 10,FALSE);

    > taTEST.FieldDefs.Add('거래처명', ftString, 20,FALSE);

    > taTEST.FieldDefs.Add('총판매대금',ftInteger, 0,FALSE);

    > taTEST.FieldDefs.Add('회수금', ftInteger, 0,FALSE);

    >

    > taTest.CreateTable;// <=이부분에서 자구만 Table Is Busy 에러가 생깁니다.

    > taTEST.Active := True;

    > end;