|
저는 TTable을 쓸때면 이렇게 씁니다.
전역에 TTable객체를 선언하구,
폼의 Create()에서 그 객체를 생성합니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
myTable = new TTable(this);
myTable->Connection = myConnection1;
}
그리고 이 테이블 객체를 사용할때는 이렇게 사용을 합니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
myTable->Close();
myTable->TableName = tblMyTable;
myTable->Open();
..............
..............
}
이렇게 해서 사용을 하면 대부분 문제없이 잘 돌아 갑니다.
그런데... 위에서 버튼을 여러번 누를경우 테이블을 먼저 닫아주는 부분에서
에러가 가끔 나긴하거든요.
에러가 나는 이유를대충 보니깐.. Close()하려는 테이블에 내용이 전혀 없을경우 에러가 나더라구요.
예를 들어보면
void __fastcall TForm1::Button1Click(TObject *Sender)
{
switch(nCase){
case 1:
myTable->Close();
myTable->TableName = tblMyTable1;
myTable->Open();
return;
case 2:
myTable->Close();
myTable->TableName = tblMyTable2;
myTable->Open();
return;
case 3:
myTable->Close();
myTable->TableName = tblMyTable3;
myTable->Open();
return;
default:
return;
}
}
이런 경우에 case가 1에서 2로 바뀔때 tblMyTable1의 내용이 있다면
myTable->Close()도 잘 하고 myTable->Open()도 잘하는데..
case 2: 에서 만약 tblMyTable2의 레토드 갯수가 하나도 없을 경우....
다시 case 3으로 넘어 간다면..
tblMyTable->Close()에서 에러가 나옵니다..
사실,, 모든 테이블은 그 내용이 들어있는건 기본 가정입니다.
하지만..이런 에러를 잡지 않은채 코딩을 한다는게 좀 걸려서요..
제가 지금 겪는 이런 에러에 대해 잘 대처할 수 있는 방법을 없을까요??
도움을 바랍니다.....
|