2011-03-31 1 views
1

TADOConnection 구성 요소를 사용하여 OLEDB 드라이버 및 tcp/ip를 사용하여 SQL Server에 연결하는 D2010 응용 프로그램을 만들었습니다. 문제는 내 응용 프로그램을 네트워크 드라이브에서 (IDE 내부 또는 외부에서) 실행할 때 데이터베이스에 연결할 수 없다는 것입니다. 내가 시도 할 때마다 나는 IDE를 통해이 오류를 얻을 :Windows 7 x64에서 OLEDB 드라이버로 SQL Server 2005에 액세스하는 Delphi 2010 응용 프로그램에서 DBNETLIB ConnectionOpen (Connect()) 오류가 발생했습니다.

--------------------------- 
Debugger Exception Notification 
--------------------------- 
Project TroisTiers.exe raised exception class EOleException with message '[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.' 
--------------------------- 
Break Continue Help 
--------------------------- 

와 나는 "EOleException : 지정되지 않은 오류"를 얻을 나는 IDE 외부 응용 프로그램을 실행할 때.

문제는 로컬 드라이브 (C :)에 .exe를 복사 할 때 즉시 오류없이 지연이 발생하지 않는다는 것입니다. WinXP 컴퓨터에서 D2010 응용 프로그램을 컴파일하고 Win7에서 실행하면 완벽하게 작동합니다. 내가 만든 .exe를 x86 Windows 7에서 빌드하고 실행하면 위와 같은 오류가 발생합니다. I 앱이 어떤 이유 리조트에 대한 다음, 첫 번째 TCP/IP를 사용하여 연결을 시도한다고 주장했다

Module Load: WSHTCPIP.dll. No Debug Info. Base Address: $74CD0000. Process TroisTiers.exe (848) 
Module Load: WSHIP6.dll. No Debug Info. Base Address: $74010000. Process TroisTiers.exe (848) 
Module Load: DBnmpntw.dll. No Debug Info. Base Address: $750C0000. Process TroisTiers.exe (848) 

:

는 내가 네트워크 드라이브에서 응용 프로그램을 시작할 때, 다음과 같은 모듈을로드하는 것으로 나타났습니다 명명 된 파이프. 테스트를 위해 서버에서 명명 된 파이프 프로토콜을 활성화했으며 매번 작동하지는 않았지만 연결이 이루어지기까지 최대 10 초가 소요되었습니다. 프로덕션 데이터베이스에 연결하는 방식이 아니므로 비활성화했습니다. 응용 프로그램이 로컬에서 실행되고 데이터가 올바르게 표시되면 DBnmpntw.dll 모듈이로드되지 않습니다.

연결 문자열 (.udl 파일을 통해)을 빌드하고 연결을 테스트하면 작동하지만 64 비트 또는 32 비트 드라이버를 통해 테스트하고 있는지는 확실하지 않습니다.

.exe 출력 디렉터리를 로컬 드라이브로 설정하는 것은 적절한 해결 방법이지만 지금은이 문제의 원인을 알고 싶습니다. 최신 환경에서 작업하는 것이 복잡하기 때문에 .exe 옆에 추가 파일이 있음). 그것은 가치가 무엇인지에 대한

Additionnal 정보 :

내 연결 문자열 : '제공 = SQLOLEDB.1가, 지속 보안 정보 = 진정한; 사용자 ID = *, 암호 = hunter2; 초기 카탈로그 = [데이터베이스 이름 ]; 데이터 원본 = [서버 IP 주소] '.

"Network Library = DBMSSOCN;"과 함께 TCP/IP를 강제로 사용하려고했습니다. 그러나 그것은 도움이되지 않습니다.

내 컴퓨터와 서버에서 방화벽이 비활성화되었습니다.
McAfee AV는 내 컴퓨터에서 ePO를 통해 관리합니다.
Win2k3 x64에서 실행되는 SQL Server 2005 x64.
SP1이 설치되지 않은 Windows 7;
cliconfg.exe -> 활성 프로토콜은 tcp/ip 전용입니다.

필요한 경우 추가 정보를 제공 할 수 있습니다.

답변

0

.EXE가 네트워크 공유 드라이브에서 실행하기에는 너무 큽니까? 나는 .EXE의 크기가 25MB를 초과하거나 닫힌 것과 같은 경험을 가지고 있습니다.

해결 방법은 간단합니다 .EXE를 로컬 드라이브로 다시 이동하십시오.

관련 문제