|
우선, 답변에 감사합니다...
헌데, 에러가 나는군여..에러가 나는 곳은
:13 db.OleFunction("CompactDataBase", mdbFileName, tempFile);
이 쪽에서 예외오류가 발생하네여....
일반적인 OLE 삽입방식은 잘 되는데... ^^;;
OleFunction에 매개 변수가 잘못된것 같기두 하구.. -_-;;;
MS Office 2000에서 만든 MDB 파일인데.. "DAO.DBEngine.35"를
사용해서 접근 하는거 맞나여.... Office 97은 맞는데..
: 안녕하십니까?
:
: 한꼬맹이 입니다.
:
: 소스를 보니 DAO 디비엔진을 가지고 MDB파일을 압축하는 것이군요...
:
: 컨버팅 소스 나갑니다.. (테스트는 안해봤어용..)
:
:1 bool __fastcall Compactmdb(AnsiString mdbFileName)
:2 {
:3 Variant db;
:4 AnsiString tempFile;
:5
:6 try
:7 {
:8 Screen->cursor = crSQLWait ;
:9 db = Variant::CreateObject("DAO.DBEngine.30");
:10 try
:11 {
:12 tempFile = ExtractFilePath(mdbFilename) + "\\msaTemp.mdb";
:13 db.OleFunction("CompactDataBase", mdbFileName, tempFile);
:14 DeleteFile(mdbFileName);
:15 RenameFile (tempFile,mdbFileName);
:16 }
:17 catch(EOleException &E)
:18 {
:19 ShowMessage("OLE 에러");
:20 return false;
:21 }
:22 }
:23 __finally
:24 {
:25 db = Unassigned;
:26 Screen->cursor = crDefault ;
:27 }
:28 return true;
:29 }
:
: 그럼 참고하세요....
|