|
나그네님의 글을 읽고 말 그대로라면 참 재밌는 현상일 것 같아 시험을 해 보았습니다.
그런데.. 제가 실험한 결과로는 Table1->Close(); 라인에 그 어떤 오류도 나타나지 않더군요.
물론 모든 데이터파일은 모두 비어 있는 파일을 사용했습니다.("a.dbf","b.dbf","c.dbf")
DBGrid->DataSource1->Table1 로 연결해서, 연결된 테이블이 바뀜에 따라 그리드 타이틀이 바뀌는 것까지 확인했습니다.
오류가 있다면, 어떤 다른 곳에 오류가 있는 듯 싶습니다.
아래 코드와 같이 <BitBtn1> 버튼을 계속 눌러 보았습니다.
void __fastcall TFSQLTest::BitBtn1Click(TObject *Sender)
{
AnsiString table[]={"a.dbf","b.dbf","c.dbf"};
static int n=0;
Table1->Close();
Table1->TableName=table[n%3];
Table1->Open();
n++;
}
그런데..
나그네님의 글 중
myTable->Connection = myConnection1;
이 라인은 무엇을 뜻하는지 모르겠습니다.
TTable 옵젝트 클래스에 Connection 이라는 Property 는 못 보았는데요...?
=======================================================================
나그네 님이 쓰신 글 :
: 저는 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()에서 에러가 나옵니다..
:
:
: 사실,, 모든 테이블은 그 내용이 들어있는건 기본 가정입니다.
: 하지만..이런 에러를 잡지 않은채 코딩을 한다는게 좀 걸려서요..
:
:
: 제가 지금 겪는 이런 에러에 대해 잘 대처할 수 있는 방법을 없을까요??
:
: 도움을 바랍니다.....
:
|