디비는 파라독스를 씁니다.
datamodul 에
procedure TDM.DataModuleCreate(Sender: TObject);
begin
DM.Table1.TableName := ExtractFilePath(Application.ExeName) + 'Main_Table.db';
DM.Table1.Active := true;
DM.Jijum_Table.TableName := ExtractFilePath(Application.ExeName) + 'Jijum_Table.db';
DM.Jijum_Table.Active := true;
end;
이케 코딩 했는데 에러 나서.
Form Create이벤트에 넣어 주워도 에러 나네요.
에러나는 부분이 폼에 써주면 DM.Table1.TableName부분에서 에러고
DataModul에 써주면
프로젝트 파일에
Application.Run; 이부분에 에러가 납니다.
아시는 분 좀 알려주세요.
제가 하고 싶은건 런타임으로 DB연결 시켜 주는건데 제가 한 방법말고 다른 방법 아시면 좀 알려 주시길..
> 디비는 파라독스를 씁니다.
>
> datamodul 에
> procedure TDM.DataModuleCreate(Sender: TObject);
> begin
> DM.Table1.TableName := ExtractFilePath(Application.ExeName) + 'Main_Table.db';
> DM.Table1.Active := true;
>
> DM.Jijum_Table.TableName := ExtractFilePath(Application.ExeName) + 'Jijum_Table.db';
> DM.Jijum_Table.Active := true;
> end;
>
> 이케 코딩 했는데 에러 나서.
>
> Form Create이벤트에 넣어 주워도 에러 나네요.
>
> 에러나는 부분이 폼에 써주면 DM.Table1.TableName부분에서 에러고
> DataModul에 써주면
> 프로젝트 파일에
> Application.Run; 이부분에 에러가 납니다.
>
> 아시는 분 좀 알려주세요.
>
> 제가 하고 싶은건 런타임으로 DB연결 시켜 주는건데 제가 한 방법말고 다른 방법 아시면 좀 알려 주시길..
>
그 이유는 십중팔구는 폼의 생성순서가
데이터모듈보다 메인폼이 먼저 생성되어서 그럴겁니다.
메인폼이 먼저 생성되면
아직 데이터모둘이 생성되기 이전이기 때문에
당연히 에러가 나겠죠?
이때는 프로젝트 옵션에서 폼의 생성 순서를 바꾸어
데이터모듈이 메인폼보다 먼제 생성되게 만들거나
위에서 답변하신 거처럼
메인폼의 OnCreate가 아닌 OnShow에 넣으면
그때는 이미 데이터모둘이 생성된 후이기 때문에
에러가 발생하지 않을 겁니다.