Q&A

  • ADO컴포넌트 Access violation Error... 분석부탁드립니다.
안녕하세요..

지금까지 BDE만 사용하다가 이번 프로젝트에 ADO를 사용해서
프로그램 작성중입니다..  DataModule에 ADO콤포넌트를 올려놓고
사용자 로그인 처리를 하던중 뜻하지 않은 Access violation error을
만났습니다..  프로그램을 시작하면 로그인창이 나타나는데..
로그인이 정상적으로 되면 괜찮은데 그냥 "종료버튼"을 누르면..에러가
발생하네요. 원인을 분석해보니 ADO콤포넌트에서 발생하는것 같습니다.
아래는 문제의 코드인데. 에러를 만들기위해 예제를 작성했습니다.

program Error_0;

uses
Forms, Controls,
Main in 'Main.pas' {MainFrm},
Login in 'Login.pas' {FrmLogin},
DModule in 'DModule.pas' {DataModule1: TDataModule};

{$R *.res}

begin
Application.Initialize;
//폼이 나타나기전에..DataModule를 만든다.. 그냥 폼종료시 에러발생
Application.CreateForm(TDataModule1, DataModule1);
with TFrmLogin.Create(Application) do
begin
   if ShowModal = mrOK then
   begin
      //폼이 나타난후에 처리를 하면 괜찮은데...
      //Application.CreateForm(TDataModule1, DataModule1);
     Application.CreateForm(TMainFrm, MainFrm);
     Application.Run;
   end
   else Application.Terminate;
end;
end.

여기서 DataModule에 놓여진 ADO콤포넌트를 없애고 BDE관련 콤포넌트를
올려놓으면 상없이 작동합니니다.
지금은 ADO를 콤포넌트를 동적으로 만들어서 사용하고 있어서
괜찮은데.. 위의 경우 원인을 알고싶습니다. ADO컴포넌트의 버그인지.. 아님..
저의 코딩스타일에 문제가 있는건지요? 테스트 예제를 첨부합니다.
1  COMMENTS