개발이전에 사전 테스트용이므로...정리해서 보세요.
당연히 access 또는 msoffice를 설치핫고..
아니면 ms hompage에서 mdac_typ.exe(배포용)를 다운받아서 설치.<--ado
왠만하면 2.1(97용)이나 2.5버전(2000용)으로..
1. DAO를 이용해서...
uses절에 comobj를 추가하고.
procedure TForm1.Button1Click(Sender: TObject);
var
DAOEngine: Variant;
begin
DAOEngine := CreateOleObject( 'DAO.DBEngine.35' );
//여기서 레지스트리를 살펴보세요.
//이 클래스 문지열이 없으면 에러가 나지요..
//DAOEngine := CreateOleObject( 'DAO.DBEngine.30');
// ich denke die datenbank muss exclusive geoffnet werden
if FileExists( Edit2.Text) then
DeleteFile( Edit2.Text);
// if fileexists('d:daonorthwind.bak') then deletefile('d:daonorthwind.bak');
DAOEngine.CompactDatabase( FilenameEdit1.Text, Edit2.Text );
// RenameFile( 'd:daonorthwind.mdb', ChangeFileExt( 'd:daonorthwind.mdb', '.BAK') );
// RenameFile( 'tmp.$$$', 'd:daonorthwind.mdb');
//if fileexists('tmp.$$$') then deletefile('tmp.$$$');
//if fileexists('d:daonorthwind.bak') then deletefile('d:daonorthwind.bak');
ShowMessage('CompactDatabase 완료했습니다');
MessageBeep(0);
DAOEngine := unassigned;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
DAOEngine: Variant;
begin
DAOEngine := CreateOleObject( 'DAO.DBEngine.35');
//여기서 레지스트리를 살펴보세요.
//이 클래스 문지열이 없으면 에러가 나지요..
//DAOEngine := CreateOleObject( 'DAO.DBEngine.30');
try
DAOEngine.RepairDataBase( Filenameedit1.Text );
ShowMessage('RepairDataBase 완료했습니다');
MessageBeep(0);
except
ShowMessage('RepairDataBase 실패했습니다');
MessageBeep(0);
end;
DAOEngine := unassigned;
end;
2.ado connection을 이용해서...
procedure TRepairDBForm.Button1Click(Sender: TObject);
var
ole:variant;
FromStream, ToStream: TFileStream;
BytesToCopy: LongInt;
Pos:Int64;
DBSource,DBTarget:String;
DataSource:string;
begin
ProgressBar1.Position := 0;
lblStep2.Caption := '진행율';
DBSource := GetCurrentDir+'RepairDB.$$$';
if FileExists(DBSource) then
DeleteFile(DBSource);
try
MainDMForm.adcnMain.Connected:=True;
DataSource:=RetString(MainDMForm.adcnMain.ConnectionString,'Data Source=',';Mode=');
if MainDMForm.adcnMain.Connected then
MainDMForm.adcnMain.Connected:=False;
ole:=CreateOleObject('jro.jetengine.2.5'); // <--mdac_typ 2.5
// 레지스트리에서 잘 찾아보시요..어떤버전이 설치