Q&A

  • MDB최적화
var ole:variant;
   S,App_Path : String;
begin
  App_Path := ExtractFilePath(ParamStr(0)) ;
  try
     ado.close;
   //////////////// 에러나는 부분//////////////
     ole := CreateOleObject('DAO.DBEngine.35');
   //////////////////////////////////////////////
     s := App_Path + 'db1.mdb';
     ole.CompactDataBase(s, App_Path + 'db1.$$$');
     ole := unassigned;
     DeleteFile(App_Path + 'db1.mdb');
     RenameFile(App_Path + 'db1.$$$', App_Path + 'db1.mdb');
  except
  end;
  ado.Connection ;

이소스는 MDB를 최적화하는 소스인데
ole := CreateOleObject('DAO.DBEngine.35');
이부분에서 에러가 납니다.
잘못된 클래스 문자열입니다라고 에러가 나옵니다
어떻게 해야되나요?
1  COMMENTS
  • Profile
    황재훈 2002.09.04 22:46
    이 부분이 에러가 나는 이유는 윈도우 레지스터에
    등록이 안되어 나타나는 현상입니다
    그래서 레지스터에서 'DAO.DBEngine'을 검색어로 찾으면
    나오는데 높은 버전이 설치되어 있으면
    DAO.DBEngine.35 ->DAO.DBEngine.36 바꿔야 실행됩니다
    참고적으로 CreateOleObject 명령어를 사용하려면 uses 문에
    ComObj를 넣어줘야 합니다
    단 복사하고자 하는 파일이 암호가 걸려있지 않아야
    이프로그램이 동작합니다