Hi Leute.
ich habe eine probleme!
weiss jemand ?
ich versuche mit JRO_TLB.pas (komponante jetengine)
Access Datenbank reparieren.
ich habe delphi6.
zu erst im delphi5 JRO_TLB compaliert.
dannach im delphi6 installiert.
das funksioniert.
kein fehler meldug aber bei der programm ablauft gib es eine fehler "Klasse nicht registiriert"
Delphi-Quellcode:
procedure TJetEngine.CompactDatabase(const SourceConnection: WideString;
const Destconnection: WideString);
begin
DefaultInterface.CompactDatabase(SourceConnection, Destconnection);
end;
und fehler meldug
Im Projekt frmaccessdbnamerename.exe ist eine Exeption der Klasse EOleException aufgetreten Meldung:'Klasse nicht registriert'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
wie könnte diese problem lösen?
delphi gesamte code ist
Delphi-Quellcode:
function TfrmAccessDbRenameF.DatabaseCompact(
const sdbName: WideString) : boolean;
var
Jetablechange : TJetEngine;
//Jet Engine
sdbTemp : WideString;
//TEMP database
sdbTempConn : WideString;
//Connection string
const
SProvider = '
Provider=Microsoft.Jet.OLEDB.4.0'+
'
Data Source=';
begin
Result :=False;
sdbTemp := ExtractFileDir(sdbName) +'
\TEMP'+ExtractFileName(sdbName);
sdbTempConn := SProvider + sdbtemp;
if FileExists(sdbTemp)
then
DeleteFile(sdbTemp);
Jetablechange := TJetEngine.Create(Application);
try
try
Jetablechange.CompactDatabase(SProvider + sdbName, sdbTempConn);
DeleteFile(sdbName);
RenameFile(sdbTemp, sdbName);
except
on E:
Exception do
ShowMessage(E.
Message);
end;
finally
Jetablechange.FreeOnRelease;
Result:=True;
end;
end;
procedure TfrmAccessDbRenameF.btnComapctClick(Sender: TObject);
var
dbSrc : WideString;
dbDest : WideString;
const
SProvider = '
Provider=Microsoft.Jet.OLEDB.4.0'+
'
Data Source=d:\kemal\';
begin
dbSrc := SProvider + edSource.Text;
dbDest := SProvider + edDest.Text;
if FileExists(edDest.Text)
then
DeleteFile(edDest.Text);
if DatabaseCompact(dbsrc)=true
then
showmessage('
Repariert!!!')
else
showmessage('
Nicht repariert!!!')
// Jetablechange.CompactDatabase(dbSrc,dbDest);
end;
Mit freundlichen Grüssen