우리 회사에서는 Crystal Reports 8을 사용하여 Delphi V에 구축된 애플리케이션을 담당하고 있습니다.
우리 모두는 Crystal & Delphi가 때때로 변덕스러울 수 있으며 최악의 경우 오류에 대한 세부 정보가 거의 없다는 점을 알고 있습니다. 또한 이에 대한 웹 문서가 크게 부족합니다. 비슷한 문제를 겪는 분들이 많은데 해결 방법이 없네요.
특히 제가 말하는 오류는 아래 이미지에 있는 오류입니다. 이는 화면에 Crystal Reports를 인쇄하려고 할 때 발생합니다.
클라이언트 컴퓨터에서 이런 일이 가끔 발생했는데 우리 환경에서 복제하기가 어려웠습니다. Crystal의 이전 버전이기 때문에 문제의 정확한 원인을 파악하는 데 도움이 되는 문서를 찾기가 매우 어렵습니다.
답변1
BDE를 이중으로 설치하면 레지스트리에 문제가 발생할 수 있습니다. 이는 여러 가지 이유로 발생할 수 있습니다.
- 이전에 제거하지 않고 애플리케이션이나 Borland를 다시 설치했습니다.
- 제거가 완전히 완료되지 않았습니다.
- BDE를 사용하여 두 번째 응용 프로그램을 설치했습니다.
이를 확인하기 위해 레지스트리에 들어가서 다음을 찾았습니다.
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Borland \ Database Engine] "DLLPath" = "C: \ \ Program Files \ \ Common Files \ \ Borland Shared \ \ BDE" 경로1, 경로2 형식입니다.
이제 이 문제를 해결하려면 다음을 수행해야 합니다.
- 문제가 발생할 경우를 대비해 BDE 키를 백업해 두세요.
- 신청서를 닫습니다.
- Regedit 열기(시작>실행>regedit.exe)
- HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine으로 이동합니다.
- 그런 다음 DLLPath 편집 키와 2개의 경로 중 하나를 두 번 클릭합니다(설치에 따라 올바른 경로를 확인하세요). 아래 이미지와 같이 두 개의 경로가 있어야 합니다. 그 중 하나를 제거하십시오.
아래 이미지와 같이 경로가 하나만 있어야 합니다.
등록 닫기편집
이제 애플리케이션을 다시 열고 화면에서 보고서를 열어볼 수 있습니다. 간단한 단계를 올바르게 수행했다면 오류가 발생하지 않아야 하며 화면에서 보고서를 볼 수 있어야 합니다.
특히 내 응용 프로그램에서 이런 일이 발생했지만 Crystal Reports 및 BDE Admin을 사용하는 응용 프로그램에서도 동일한 프로세스를 따라야 합니다.
답변2
Crystal 8.5에서 이런 종류의 오류가 발생할 때마다 Crystal 배포 DLL의 혼합 버전 또는 해당 버전이 없는 것과 관련이 있었습니다. 제 경우에는 일부 고객들이 여전히 사용하고 있는 Crystal 6.0을 사용하고 있습니다.
지루한 부분은 모든 DLL을 찾아 삭제하는 것입니다. 일반적으로 x86의 경우 %systemroot%\system32에 있고 x64 시스템의 경우 %systemroot%\syswow64에 있습니다.
기타 알아야 할 사항:
- 시작점을 설정합니다. 여기서는 항상 깨끗한 시스템에서 작동하는지 확인합니다.
- 동일한 시스템에서 여러 버전의 Crystal Reports가 작동하지 않습니다. 개발 환경이나 배포 환경에 대해 이야기하고 있다면 상관없습니다.
- 저는 일반적으로 모든 Crystal 8.5 배포 DLL을 %systemroot%\crystal 아래에 두고 시스템 PATH에 배치합니다. 이를 통해 가장 일반적인 배포 관련 문제의 95%가 해결되었습니다.
대답하기에는 조금 늦었지만 다른 사람들에게 도움이 될 수 있습니다.