BCB: Ohne BDE auf eine DBase-Datei zugreifen - Wie?



  • Hallo Zusammen,
    ich möchte ein kleines Programm basteln in dem ich auf DBase-Dateien zugreifen muß.
    Jetzt ist meine Frage: Geht das nur über BDE oder auch anders??

    Ich möchte eigentlich z.B. nur angeben wo die DBase Datei steht und dann aus der die Daten auslesen.

    Ist sowas möglich??

    Im voraus schonmal Danke.
    Gruß



  • siehe www.wotsit.org fuer die dateiformat-beschreibung. mit hilfe derer kannst du recht einfach einige funktionen implementieren und die dbase-datei von hand auslesen (ganz ohne bde).



  • die ADO-Komponenten brauchen keine BDE



  • @Linnea,
    kennst du ein gutes Tutorial für ADO oder wo man etwas darüber nachlesen kann??

    Gruß
    EPMS



  • nein, ich hab mir das meiste mit der Hilfe, Google und diesem Forum erarbeitet

    hier mal ein Beispiel bei dem alles dynamisch erzeugt wird (Zugriff auf Datenbank über ODBC):

    //->für select
      CoInitializeEx(NULL, COINIT_MULTITHREADED);
      TADOConnection *ACon1 = new TADOConnection(NULL);
      TADOCommand *AC = new TADOCommand(NULL);
      TADODataSet *AD = new TADODataSet(NULL);
      try
        {
        ACon1->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=Test";
        ACon1->LoginPrompt = false;
        AC->Connection = ACon1;
        if (!ACon1->Connected) ACon1->Open();
    
        AC->CommandText = "select Anzeige from ToolTip where TID = :Param1";
        AC->CommandType = cmdText;
        AC->Parameters->ParamByName("Param1")->Value = zahl;
        AD->Recordset = AC->Execute();
    
        Text = AD->FieldByName("Anzeige")->AsString;
        }
      __finally
        {
        ACon1->Close();
        delete AC;
        delete AD;
        delete ACon1;
        CoUninitialize();
        }
    
    //für insert
        AC->CommandText = "insert into tabelle (wert) values (:Param1)";
        AC->CommandType = cmdText;
        AC->Parameters->ParamByName("Param1")->Value = zahl;
        AC->Execute();
    

    natürlich kann man die Komponenten auch aufs Formular legen und Grundeinstellungen wie ConnectionString, Connection und LoginPrompt zur Entwurfszeit einstellen. In dem Fall kann das CoInitialize und CoUninitialize in Konstruktor bzw. Destruktor der Anwendung platziert werden.


Anmelden zum Antworten