Einzelnen Beitrag anzeigen

k_ocel

Registriert seit: 7. Dez 2005
Ort: Hamburg
16 Beiträge
 
Delphi 6 Enterprise
 
#1

JRO_TLB Fehler meldung "Klasse nicht registiriert"

  Alt 12. Apr 2006, 09:56
Datenbank: Access • Version: 2000 • Zugriff über: Jetengine
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
  Mit Zitat antworten Zitat