Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht !?



  • Hallo, ich habe folgendes immer noch bestehendes Problem.

    Ich verwende für die Datensatz anzeige mittlerweile ein Funktion 🙂

    Wenn ich nun meine Form öffne, wird folgendes ausgeführt:

    bool TForm6::f_openall_query()
    {
      adoqu_alle->Close();
      adoqu_alle->SQL->Clear();
      adoqu_alle->SQL->Add("SELECT id,bezeichnung FROM tb_ftp ORDER BY bezeichnung asc");
      adoqu_alle->Open();
    
      return true;
    }
    

    Da gibt es keine Fehlermeldung, obwohl die Datenbank leer ist!!!

    Wenn ich nun einen neuen Datensatz in die leere Datenbank eingebe und speichern möchte mit:

    adoqu_save->SQL->Clear(); //Löschen der SQL Strings
    
                    //Hinzufügen des SQL String
                    adoqu_save->SQL->Add("INSERT INTO tb_ftp (bezeichnung,host,port,username)");
                    adoqu_save->SQL->Add("VALUES ('"+txt_bezeichnung->Text+"','"+txt_host->Text+"','"+a_port+"','"+txt_username->Text+"')");
    
                    adoqu_save->ExecSQL(); //INSERT Befehl ausführen
    

    wird danach unmittelbar wieder die funktion aufgerufen

    f_openall_query();
    

    Und dann wird die Fehlermeldung "Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht" mir angezeigt, obwohl das ja eigentlich nicht sein kann, da ja ein Datensatz eingetragen wurde!

    Wenn ich danach mein Programm schließe und neu öffne (mit Datensatz!) und einen neuen Datensatz speichern möchte, geht alles einwandfrei.

    Ich habe ein TDataSource der Eigenschaft DataSet das TADOQuery zugewiesen.
    Und das DataGrid habe ich dann halt mit dem DataSource verbunden.

    Ich weis einfach nicht mehr weiter 😡

    Wenn mir einer helfen kann, dem wäreich sehr verbunden.

    Gruß
    Thorsten



  • OK, danke für eure Bemühungen Jungs und Mädels. Ich bin der ganzen Sache mal auf den Grund gegangen und bin froh das es nicht an meiner Programmierung lag, sondern an dem Borland Builder und den ADO - Komponenten.

    Diese Fehlermeldung ist ein bekanntes Problem und kann behoben werden, da es dafür ein Update gibt!

    Die Patches bekommt man hier:

    http://info.borland.com/devsupport/bcppbuilder/patches/

    Zuerst sollte man sich das "C++Builder 5.0 Update #1" installieren und dann das "ADOExpress Update".

    Wenn ihr dann beides installiert habt, müsst ihr euer Programm neu Kompilieren bzw. Projekt -> ... erzeugen.
    Danach klappt alles wunderbar!

    Die ReadMe gibt es dazu hier: http://info.borland.com/devsupport/bcppbuilder/patches/ADOUpd1rdme.txt

    Gruß
    Thorsten


Anmelden zum Antworten