고수님들의 조언을 구합니다.
...
메인 프로그램에 데이타 모듈이 존재하고 그 데이타 모듈에 데이타베이스 컴포넌트[connected = true로 설정]가 있습니다. 메인 프로그램은 데이타 모듈이 생성된 후에 생성됩니다.
메인 프로그램내의 한 폼에서 제가 만든 dll을 호출하는데, 이 dll에서 데이타베이스를 생성합니다.(ex) db := TDatabase.Create(nil); 파라미터는 메인 프로그램에 존재하는 데이타베이스의 파라미터와 똑같고 단지 alias name만 다르게 줍니다. 그리고 쿼리를 생성합니다.(ex) qry := TQuery.Create(nil);
위와 같이 생성된 데이타베이스와 쿼리를 사용해서 인포믹스 DB에 접속해서 조회를 하는데 문제가 생기는 부분은 이 dll을 호출하는 폼이 종료되고 메인 프로그램이 종료되면 kernel32.dll과 관련된 오류가 발생합니다.(조회는 이상없이 되는것 같습니다. 조회된 값으로 그래프를 그리는데 그래프는 그려지거든요.) 오류창이 없어지질 않고 윈도우가 종료되지 않는 문제가 발생합니다.
이 문제를 어떻게 해결할 수 있는지... 가르쳐 주십시오.
...
dll의 목적은 어떤 계산을 하는 함수(만든)들을 가지고 있는데 주어지는 값이 DB에 존재합니다. 굳이 dll안에서 데이타베이스를 생성시켜주어야 하는지 ... 그렇게 하지 않아도 된다면 메인 프로그램의 데이타 모듈에 존재하는 데이타베이스와 쿼리를 사용하여 조회된 값을 dll에 넘겨주고 싶은데요, 이렇게 사용하는 방법이 있는지 가르쳐 주세요..
즉 A.Create로 실행시에 메모리에 컨트롤을 생성시킨 경우
반드시 폼이 Destroy되는 시점에서 A.Free를 시켜주어야 합니다.