Q&A

  • Windows vista

• 개발 환경 - 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가 비스타에서 적용이 안될수도 있다던데 맞나요?

이와 같은 경험이 있으시면 답변 좀 부탁드려요      
0  COMMENTS