자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 라이브러리, TZMySqlQuery 객체 생성
2012.04.18 00:20
저희가 사용하는 자연언어처리 프로그램을 update하는 과정에서 다음 문제가 발생했습니다.
이미 여러 경로로 문의해 보았으나 좋은 답을 얻지 못했습니다. Devgear의 도움으로 이 문제를 해결할 수 있었으면 좋겠네요.
해결했으면 하는 문제의 요약:우리는 zeosdbo라는 DB 라이브러리를 사용하는 델파이 기반 프로젝트를 인수받아 관리하고 있습니다. 그런데 우리가 갖고 있는 라이브러리 소스로는 델파이 내부에 컴포넌트 등록을 할 줄을 몰라서, 해당 프로그램이 EXE로 빌드는 되지만 TZMySqlQuery 같은 객체들은 생성되지 않고 NULL인 채로 실행되어 프로그램이 제대로 동작하지 않습니다.그래서 문제를 재연할 수 있는 최소한의 케이스만 떼어낸 아주 자그마한 예제 프로젝트를 첨부하니, 이 프로젝트 내부에서 TZMySqlQuery 객체가 제대로 생성되게 라이브러리를 새롭게 빌드/설치하거나 개발툴을 세팅하는 방법을 델파이 초보의 입장에서 자세히 알려 주시기를 요청드립니다. (델파이 XE2 기준)모르면 어렵지만 델파이를 제대로 줄 아는 분이라면 금방 해결 가능하거나, 무엇 때문에 막히고 있는지를 곧장 진단할 수 있는문제이지 않을까 예상됩니다.
문제를 재연하는 법:1. 첨부하는 Projects.zip을 내 문서 폴더 아래에 압축을 풉니다. 그리고 첨부하는 zeosdbo_lib.zip도 역시 내 문서 폴더 아래 별도의 폴더에다 폴더 구조를 모두 유지하면서 압축을 풉니다.2. 델파이를 실행하여 Project.zip에 있던 Sample.dproj 프로젝트를 엽니다.그 후, Project-Options (Shift+Ctrl+F11)로 가서 Delphi Compiler-Search path에는 아까 압축을 푼 zeosdbo 라이브러리 아래의 dbase와 common 디렉터리를 추가합니다. 현재 저희 개발 환경을 기준으로 맞춰져 있는 위치를 그쪽에 맞게 바꾸면 됩니다.3. 그 뒤 F9를 눌러 보면 프로그램이 정상적으로 빌드되고 실행은 될 것입니다. 라이브러리 관련 파일들까지 인클루드되어 빌드됩니다. 하지만 폼에서 Button1을 클릭해 보시면 프로그램이 죽는데, 이는 내부에서 TZMySqlQuery 형으로 선언된 객체가 생성되지 못하고 NULL이기 때문입니다.사실, Unit1.pas를 고친 뒤에 다시 빌드를 하면 아래와 같은 에러 메시지가 뜨기도 합니다.Field Form1.qTemp does not have a corresponding component. Remove the declaration?이것이 안 뜨게 하는 것이 핵심입니다.아마 개발툴 설정이 잘 되면 델파이의 컴포넌트 팔레트 자체에 zeosdbo 라이브러리 관련 컴포넌트들이 등록되지 않을까 하는 추측이 듭니다.
댓글 2
-
관리자
2012.04.18 01:11
-
관리자
2012.04.19 19:33
http://firebird-with-delphi.blogspot.com/2007/07/installing-zeosdbo.html
위의 링크에서 좀더 자세한 정보를 얻을 수 있습니다.
Delphi 라이브러리, TZMySqlQuery 객체 생성
2012.04.18 00:20
저희가 사용하는 자연언어처리 프로그램을 update하는 과정에서 다음 문제가 발생했습니다.
이미 여러 경로로 문의해 보았으나 좋은 답을 얻지 못했습니다. Devgear의 도움으로 이 문제를 해결할 수 있었으면 좋겠네요.
해결했으면 하는 문제의 요약:
우리는 zeosdbo라는 DB 라이브러리를 사용하는 델파이 기반 프로젝트를 인수받아 관리하고 있습니다. 그런데 우리가 갖고 있는 라이브러리 소스로는 델파이 내부에 컴포넌트 등록을 할 줄을 몰라서, 해당 프로그램이 EXE로 빌드는 되지만 TZMySqlQuery 같은 객체들은 생성되지 않고 NULL인 채로 실행되어 프로그램이 제대로 동작하지 않습니다.
그래서 문제를 재연할 수 있는 최소한의 케이스만 떼어낸 아주 자그마한 예제 프로젝트를 첨부하니, 이 프로젝트 내부에서 TZMySqlQuery 객체가 제대로 생성되게 라이브러리를 새롭게 빌드/설치하거나 개발툴을 세팅하는 방법을 델파이 초보의 입장에서 자세히 알려 주시기를 요청드립니다. (델파이 XE2 기준)
모르면 어렵지만 델파이를 제대로 줄 아는 분이라면 금방 해결 가능하거나, 무엇 때문에 막히고 있는지를 곧장 진단할 수 있는문제이지 않을까 예상됩니다.
문제를 재연하는 법:
1. 첨부하는 Projects.zip을 내 문서 폴더 아래에 압축을 풉니다. 그리고 첨부하는 zeosdbo_lib.zip도 역시 내 문서 폴더 아래 별도의 폴더에다 폴더 구조를 모두 유지하면서 압축을 풉니다.
2. 델파이를 실행하여 Project.zip에 있던 Sample.dproj 프로젝트를 엽니다.
그 후, Project-Options (Shift+Ctrl+F11)로 가서 Delphi Compiler-Search path에는 아까 압축을 푼 zeosdbo 라이브러리 아래의 dbase와 common 디렉터리를 추가합니다. 현재 저희 개발 환경을 기준으로 맞춰져 있는 위치를 그쪽에 맞게 바꾸면 됩니다.
3. 그 뒤 F9를 눌러 보면 프로그램이 정상적으로 빌드되고 실행은 될 것입니다. 라이브러리 관련 파일들까지 인클루드되어 빌드됩니다. 하지만 폼에서 Button1을 클릭해 보시면 프로그램이 죽는데, 이는 내부에서 TZMySqlQuery 형으로 선언된 객체가 생성되지 못하고 NULL이기 때문입니다.
사실, Unit1.pas를 고친 뒤에 다시 빌드를 하면 아래와 같은 에러 메시지가 뜨기도 합니다.
Field Form1.qTemp does not have a corresponding component. Remove the declaration?
이것이 안 뜨게 하는 것이 핵심입니다.
아마 개발툴 설정이 잘 되면 델파이의 컴포넌트 팔레트 자체에 zeosdbo 라이브러리 관련 컴포넌트들이 등록되지 않을까 하는 추측이 듭니다.
댓글 2
-
관리자
2012.04.18 01:11
-
관리자
2012.04.19 19:33
http://firebird-with-delphi.blogspot.com/2007/07/installing-zeosdbo.html
위의 링크에서 좀더 자세한 정보를 얻을 수 있습니다.
제우스 라이브러리를 델파이에 먼저 설치 해야 합니다.
제우스를 설치하는 방법은
1. 델파이의 라이브러리 패스에 zeosdbo_lib 파일을 풀면 나오는 서브 디렉토리 중에서 common, dbase, other 를 추가해 줍니다.
2. 그리고 zeosdbo_lib 디렉토리에서 현재 가지고 계신 델파이 버전에 맞는 dpk 파일을 열고 프로젝트 매니저에서 프로젝트를 선택하여 오른쪽 버튼을 이용하여 메뉴를 호출한 후 Install 메뉴를 선택해서 설치를 진행 합니다.
3. 2번 설치중에 언떤 파일을 선택 할지 모르실것 같은데..
dpk 파일들을 보면 버전 번호가 붙어 있습니다. ZCommon6.dpk 파일은 델파이 버전 6용 입니다. 7까지도 설치 가능 할겁니다.
4. 제우스는 설치 순서도 문제가 됩니다.
먼저 ZCommon을 먼저 설치 하고 다른것들을 설치 해 주어야 합니다.
5, 정상적으로 설치가 되었다면 원래 프로젝트를 열면 디자인 화면에 컴포넌트 들이 보여야 합니다.
그러면 위의 메세지도 나타나지 않을 겁니다. 계속해서 메세지가 나타난다면
일부 컴포넌트가 설치 되지 않은 것입니다.
버전에 맞는 dpk 파일을 열어서 모두 설치해 보시기 바랍니다 ^_^