이것때문에 참 많이 해맸었는데......
정말 감사합니다.
박지훈.임프 님이 쓰신 글 :
: 다음과 같이 경로명 앞뒤에 따옴표(")를 추가해주시면 됩니다.
: Command := 'gbak -b ' + SourceDir + ' "' + TarGetDir + '" -user sysdba -password masterkey';
: 경로명에 스페이스가 있는 경우를 만들어서 실제로 테스트를 해봤고요. 잘 되는군요.
:
: 그럼...
:
:
: 푸른솔 님이 쓰신 글 :
: : 답변 감사합니다. 원인을 찾아냈습니다.
: :
: : 경로명(폴더명)에 공백(Blank)이 포함돼 있으면 그 폴더를 인식을 못합니다.
: : C:\Program files 와 같이 중간에 공백이 있는 폴더명은 인식을 못합니다.
: : 공백이 없는 폴더명을 주니까 잘 돼네요.....
: :
: : WinExec가 문제가 아니라 gbak이 문제인 것 같습니다.....
: : 아뿔사 무슨 방법이 없을 까요?
: :
: :
: :
: :
: : 박지훈.임프 님이 쓰신 글 :
: : : 똑같이 해봤는데(패스만 제 디비의 패스로 바꿨습니다)... 잘 되는데요.
: : : 안되신다면, 두가지 가능성이 있을 듯.
: : :
: : : BACKUP 디렉토리가 이미 존재하는가요? 없을 수도 있다면 중간에 ForceDirectories() 같은 호출로 디렉토리를
: : : 생성하도록 하는 라인이 필요할 듯.
: : :
: : : 그리고... 파이어버드의 bin 디렉토리가 패스에 걸려있는지요. 패스에 걸려있지 않다면 패스로 추가하든지, 아니면
: : : WinExec() 호출시 gbak의 전체 경로를 명시해주어야 할 겁니다.
: : :
: : : 그럼...
: : :
: : :
: : : 푸른솔 님이 쓰신 글 :
: : : : FB를 백업받을려고 다음과 같이 했습니다.
: : : :
: : : : RootDir := 'C:\Program Files\PineTree\CM';
: : : : SourceDir := RootDir + '\DATA\CONTRACT.FDB';
: : : : TargetDir := Rootdir + '\BACKUP\CONTRACT.FBK';
: : : :
: : : : Command := 'gbak -b ' + SourceDir + ' ' + TarGetDir + ' -user sysdba -password masterkey';
: : : : if WinExec(PChar(Command), SW_HIDE) < 32 then
: : : : ShowMessage('에러 발생...');
: : : :
: : : : 에러는 발생되지 않습니다. 그러나 백업파일이 TargetDir에 전혀 생성되지 않네요..
: : : : SellExecute로도 해 봤으나 결과는 마찬가지입니다.
: : : : 도스 프롬프트에서 위의 명령어를 직접 입력하면 이것은 잘 됩니다.
: : : : 프로그램내에서는 왜 안되는지 모르겠습니다.
: : : :
: : : : 하도 안돼서 IBBackupServiece를 이용해 볼려고
: : : : 먼저 자료실에 있는 최신버전의 IBXDP708버전을 설치를 했습니다.
: : : : 그런데 Interbase Admin 콤포넌트 탭이 사라졌습니다.
: : : : 무엇을 더 설치를 해 줘야 되는 것이 있는지요?
: : : : (c:\Windows\system32 폴더 밑에 있는 IBxpress73.bpl를 등록하면 될까 해서 해 봤더니
: : : : 이 BPL은 등록이 안되네요...)
: : : :
: : : : 해매다가 이렇게 질문을 올려 봅니다.
: : : : 백업에 대한 조언을 부탁드립니다.
: : : :
: : : : FB2.0 + Delphi 7입니다.
|