Hallo zusammen,
ich werte über eine Kombination aus dbQuery und dbTable Daten aus und bekomme immer nach der gleichen Anzahl Daten (510) zuerst die Meldung: „In Ihrem Projekt ist ein DBEnginError aufgetreten. ‚Ungültiger Parameter’“ und nach einem erneuten Aufruf ‚Sperrungsdatei ist zu groß’. Erst wenn ich das Programm beende und wieder neu starte, kann ich z.B. die nächsten 510 Sätze auswerten. Dabei ist es unabhängig, wie viele Datensätze bei der zweiten SQL-Abfrage (dbQuery2) gefunden werden
Das Vorgehen ist wie folgt:
Eingrenzung der Daten über 1. SQL-Abfrage
Satzweises abarbeiten dieser SQL-Menge. Bei jedem Satzwechsel wird Table1 über FindKey auf den Datensatz im dbQuery1 gesetzt.
while not dbQuery1.eof do<br>
begin<br>
..zspUpdateClick(nil); // Aktualisierung von Daten<br>
..dbQuery1.Next;<br>
end;<br>
procedure TfoedLief. DbQuery1AfterScroll(DataSet: TDataSet);<br>
begin<br>
..dbTable1.FindKey([dbQuery1.FieldByName('Rufname').Value]);<br>
end;<br>
Und hier die Bearbeitung der zweiten dbQuery
Procedure TfoedLief.zspUpdateClick(Sender: TObject);<br>
begin<br>
..dbQuerry2.Close;<br>
..dbQuerry2.SQL.Text:='SELECT A.Nr, A.ID, P.LiefMenge';<br>
..dbQuerry2.SQL.Add('FROM Prarprot P');<br>
..dbQuerry2.SQL.Add('left outer join PPS_Artikel on P.ArtID=A.ID');<br>
..dbQuerry2.QL.Add('where ?????’) // Beliebige Suchabfrage<br>
..dbQuerry2.Open;<br>
..// Bearbeitung der gefundenen Daten. Dies hat aber kein Einfluss auf dieFehlermeldung<br>
end;<br>
Das Beispiel ist um einige Auswertungen gekürzt, zeigt aber den grundsätzlichen Aufbau.
Wer kann helfen?
Gruß Gerd
ich werte über eine Kombination aus dbQuery und dbTable Daten aus und bekomme immer nach der gleichen Anzahl Daten (510) zuerst die Meldung: „In Ihrem Projekt ist ein DBEnginError aufgetreten. ‚Ungültiger Parameter’“ und nach einem erneuten Aufruf ‚Sperrungsdatei ist zu groß’. Erst wenn ich das Programm beende und wieder neu starte, kann ich z.B. die nächsten 510 Sätze auswerten. Dabei ist es unabhängig, wie viele Datensätze bei der zweiten SQL-Abfrage (dbQuery2) gefunden werden
Das Vorgehen ist wie folgt:
Eingrenzung der Daten über 1. SQL-Abfrage
Satzweises abarbeiten dieser SQL-Menge. Bei jedem Satzwechsel wird Table1 über FindKey auf den Datensatz im dbQuery1 gesetzt.
while not dbQuery1.eof do<br>
begin<br>
..zspUpdateClick(nil); // Aktualisierung von Daten<br>
..dbQuery1.Next;<br>
end;<br>
procedure TfoedLief. DbQuery1AfterScroll(DataSet: TDataSet);<br>
begin<br>
..dbTable1.FindKey([dbQuery1.FieldByName('Rufname').Value]);<br>
end;<br>
Und hier die Bearbeitung der zweiten dbQuery
Procedure TfoedLief.zspUpdateClick(Sender: TObject);<br>
begin<br>
..dbQuerry2.Close;<br>
..dbQuerry2.SQL.Text:='SELECT A.Nr, A.ID, P.LiefMenge';<br>
..dbQuerry2.SQL.Add('FROM Prarprot P');<br>
..dbQuerry2.SQL.Add('left outer join PPS_Artikel on P.ArtID=A.ID');<br>
..dbQuerry2.QL.Add('where ?????’) // Beliebige Suchabfrage<br>
..dbQuerry2.Open;<br>
..// Bearbeitung der gefundenen Daten. Dies hat aber kein Einfluss auf dieFehlermeldung<br>
end;<br>
Das Beispiel ist um einige Auswertungen gekürzt, zeigt aber den grundsätzlichen Aufbau.
Wer kann helfen?
Gruß Gerd
Comment