IDAPI Service Bibliotheks Problem



  • hallo folgender code bringt mir folgende fehler meldung

    AnsiString pfad = Application->ExeName;
    
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
      Database1->Close();
      Database1->DriverName="MSACCESS";
      Database1->LoginPrompt=false;
    
      int pos=0;
      for(int i=0;i<pfad.Length();i++){
        if(pfad.SubString(i,1)=="\\"){
          pos=0;
          pos=i+1;
        }
      }
      pfad.Delete(pos,pfad.Length()-pos+1);
      pfad+="db1.mdb";
    
      Session->AddStandardAlias("Alliallasasddasda", pfad , "MSACCESS");
      Session->SaveConfigFile();
    
      Database1->Params->Add("DATABASE NAME="+pfad);
    
      Database1->Open();
      Table1->Active=true;
    
    }
    

    Fehler: IDAPI Service Bibliotheks

    jemand ne ahnung? bitte



  • Fehler verföllständigung

    Im Projekt Einbindung.exe ist eine Exeption der Klasse EDBEngineError aufgetreten. Meldung: 'Fehler beim Laden der IDAPI Service Bibliothek
    Datei: MSJT3032.dll
    Alias: dataBase'. Prozess wurde angehalten bla



  • keiner eine ahnung???



  • vielleicht hilft dir dieser Beitrag

    noch einen Tip: um an den Pfad zu kommen, in dem die Anwendung steht, kann man ExtractFilePath verwenden



  • int pos=0;
      for(int i=0;i<pfad.Length();i++){
        if(pfad.SubString(i,1)=="\\"){
          pos=0;
          pos=i+1;
        }
      }
      pfad.Delete(pos,pfad.Length()-pos+1);
    

    ist dir aufgefallen, dass du den pfad löscht ausserhalb der schleife

    der wert der zuletzt in "pos" gespeichert wird, wird verwendet, niemals die ersten durchläufe bis length erreicht ist

    noch dazu, dass "\" = \ bedeutet

    hoffe das hilft dir weiter

    greetz



  • @09052007
    hilf123 versucht den Pfad bis zur Exe.datei auszulesen, z.B. bei "D:\Projekte\Testprojekt\Projekt.exe" bekommt er so "D:\Projekte\Testprojekt\"
    deshalb ist sein Quellcode, wenn auch etwas umständlich, so doch korrekt

    außerdem solltest du dir mal das Thema Escape-Sequenzen in der BCB-Hilfe ansehen, da \\ hier völlig korrekt ist und auch nur als 1 Zeichen gewertet wird



  • Das pos=0 ist da allerdings überflüssig.
    Man könnte das aber auch so schreiben.

    AnsiString pfad = ExtractFilePath(Application->Exename) + "db1.mdb";
    

    Bezüglich des Fehlers. Wenn du mit dem debugger durchgehst, wann kommt der Fehler genau? Evtl. stimmen hier auch einfach die Parameter des Alias nicht. Ich kenne mich mit ACCESS-Anbindungen über die BDE aber nicht aus.



  • ich danke euch allen schon mal viel mals. auch wenn keiner der beitrage wirklich geholfen hat. das soll kein vorwurf sein sondern eine feststellung.

    wenn ich mit dem debugger durchgeh, kommt der fehler beim

    Database1->Open();

    also wenn ich die Database aktiviere also öffne.

    BIITITTEEE helft miiiirrrr



  • Vergiss die BDE, die ist veraltet, führt zu solchen und anderen Fehlern. Außerdem mußt du im schlimmsten Fall irgendwann in der Zukunft alle BDE-Projekte so oder so umbauen, da die BDE dann garnicht mehr unterstützt wird. Auch die Weitergabe solcher Projekte ist nicht unproblematisch.

    Die ADO-Componenten sind ab BCB6 mit dabei, ansonsten gibts noch DBExpress. Alternativ sind andere Datenbanken zu empfehlen. Schau dir dazu auch mal die FAQ im Datenbank-Forum an.



  • hallo,

    konnte das problem lösen. und zwar für alle diejenigen, die das gleiche problem haben, DAO treiber aktualisieren, und die dll einstellung vom MSACCESS verändern


Anmelden zum Antworten