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');
이부분에서 에러가 납니다.
잘못된 클래스 문자열입니다라고 에러가 나옵니다
어떻게 해야되나요?
등록이 안되어 나타나는 현상입니다
그래서 레지스터에서 'DAO.DBEngine'을 검색어로 찾으면
나오는데 높은 버전이 설치되어 있으면
DAO.DBEngine.35 ->DAO.DBEngine.36 바꿔야 실행됩니다
참고적으로 CreateOleObject 명령어를 사용하려면 uses 문에
ComObj를 넣어줘야 합니다
단 복사하고자 하는 파일이 암호가 걸려있지 않아야
이프로그램이 동작합니다