![]() |
ADO: mehrfache Zugriffe auf Foxpro Tabellen: Fehermeldung
Hallo,
ich möchte aus einer Tabelle(Foxpro) zunächst alle records löschen und dann neu anlegen:
Delphi-Quellcode:
das funzt auch erstmal so...
DB_DataModul.MDBQuery.Close;
DB_DataModul.MDBQuery.SQL.Text:= 'delete from mdb'; DB_DataModul.MDBQuery.ExecSQL; wenn ich dann aber wie folgt weitergehe:
Delphi-Quellcode:
bekomme ich eine OLE DB Exception: Der aktuelle Provider unterstützt nicht die Wiedergabe mehrfacher Recordsets bei einer einzelnen Ausführung
DB_DataModul.MDBQuery.Open;
DB_DataModul.MDBQuery.Edit; while not DB_DataModul.ZQueryDBMaster.Eof do begin DB_DataModul.MDBQuery.Append; DB_DataModul.MDBQuery.FieldByName('Nr').AsInteger:= DB_DataModul.ZQueryDBMaster.FieldByName('Nr').AsInteger; DB_DataModul.MDBQuery.Post; DB_DataModul.ZQueryDBMaster.Next; end; DB_DataModul.MDBQuery.Close; Was mache ich denn da falsch? Gruß Gambit |
Re: ADO: mehrfache Zugriffe auf Foxpro Tabellen: Fehermeldun
Habe mittlerweile eine-allerdings unbefriedigende-Lösung gefunden:
wenn ich eine ADOConnection benutze, kann ich die Datensätze löschen mit:
Delphi-Quellcode:
Danach kann ich dann wie beschrieben fortfahren:
ADOConnection.Execute('delete from mdb');
Delphi-Quellcode:
Das Problem, welches sich aber aus der Foxprotabelle ergiebt ist, dass die Datensätze nicht wirklich gelöscht werden, sondern nur als gelöscht makiert werden. Bei jedem Durchgang wird die Datenbank dadurch um die Erstellgröße größer. Bei einer BDE Datenbank werden die frei gewordenen Plätze wenigstens wieder belegt wodurch die Datenbank zwar nie kleiner aber auch bei einem Durchgang nicht unwesentlich größer wird. Eben nur durch die hinzugefügten Datensätze.
DB_DataModul.MDBQuery.Open;
DB_DataModul.MDBQuery.Edit; while not DB_DataModul.ZQueryDBMaster.Eof do begin DB_DataModul.MDBQuery.Append; DB_DataModul.MDBQuery.FieldByName('Nr').AsInteger:= DB_DataModul.ZQueryDBMaster.FieldByName('Nr').AsInteger; DB_DataModul.MDBQuery.Post; DB_DataModul.ZQueryDBMaster.Next; end; DB_DataModul.MDBQuery.Close; Eine Möglichkeit die Foxprodatenbank auch physisch zu leeren gibts wohl so nicht...falls jemand was anderes weiß, immer her damit... Gruß Gambit |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz