• 개발 환경 - Windows XP, Delphi7 , Installshield Express 5.0
• 문제점 - XP상에서 구동시키던 프로그램을 Vista에서 구동시킬 경우 다음 에러 발생.
Network initailization failed.
File for directory does not exist.
File C:\PDOXUSRS.NET
Permission denied.
Directory C:\
• BDE를 사용할 경우 BDE 로드 시 pdoxusrs.net 파일을 C:\ (default)에 생성.
BDE Config 파일은 IDAPI32.CFG 파일에 해당 파일을 윈도우 Vista의 virtual 폴더에 생성하게끔 수정해 주어야 함. ( 델마당 사이트 참조 )
방법 1. BDE Administrator에서 파라독스 Net Dir 수정
방법 2. Coding 수정
( 코드기어 “How to change NET DIR programmatically so it persists“ article 참조 )
추가 코딩 부분
var
hCur : hDBICur;
Config : CFGDesc;
ContinueIt: boolean;
...
if DbiInit(nil) = DBIERR_NONE then
begin
hCur := nil;
if DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent,
'\DRIVERS\PARADOX\INIT', hCur) = DBIERR_NONE then
begin
if DbiSetToBegin(hCur) = DBIERR_NONE then
begin
ContinueIt := true;
while ContinueIt do
begin
if(DbiGetNextRecord(hCur, dbiWRITELOCK, @Config, nil)
<> DBIERR_NONE) then
ContinueIt := false
else
if StrIComp(Config.szNodeName, 'NET DIR') = 0 then
begin
StrCopy(Config.szValue, 'servervolumemydir');
DbiModifyRecord(hCur, @Config, true);
ContinueIt := false
end;
end;
end;
end;
DbiCloseCursor(hCur);
DbiExit();
end;
위 코드에서 servervolumemydir → C:\Program Files\Common Files\Borland Shared\BDE로 변경 해 줌
• 방법1,2 적용 후 문제점
테스트 환경 - IBM 노트북 PC, Windows Vista Basic
1. 방법1 적용 - 기존의 DPA 프로그램을 삭제 후 방법 1을 적용하여 재설치.
프로그램을 구동시켜 본 결과 에러 발생
→ NET DIR을 직접 변경시켜줌. 이후 동작에 이상이 나타나지 않음.
→ 같은 프로그램을 삭제 후 재설치 했을 경우도 정상 동작 함.
2. 방법2 적용
→ XP 상에서 정상적으로 동작됨. 수정된 경로 상에 pdoxusrs.net 파일 생성
→ Vista 상에선 아무런 반응이 없음, 화면 표시조차 없었음.
(하드 디스크가 계속 돌아가고 있었으며, 윈도우 관리자에서 프로세스를 확인해 본
결과 CPU 사용률이 50으로 표시 됨.)
BDE가 비스타에서 적용이 안될수도 있다던데 맞나요?
이와 같은 경험이 있으시면 답변 좀 부탁드려요