![]() |
Datenbank: ACCESS • Version: 2003 • Zugriff über: ADOConnection
Exceptionfehlermeldung
Hallo Allerseits.
Ich habe hier eine Fehlermeldung, die mir der Debugger gab: Der aktuelle Provider unterstützt nicht die Wiedergabe mehrfacher Recordsets bei einer einzelnen Ausführung ich habe hier zwei Funktionen geschrieben:
Delphi-Quellcode:
Function calc_AG(AG_Wert : string; cLSZ : String; cRegion : String; oQuery1 : TADOQUERY) : Integer ;
und
Delphi-Quellcode:
function new_calc(cLSZ: string; cRegion : string; oQuery: TADOQuery) : TRGW ;
ich habe unter andere ein Object Variable vom Typ TADOQuery mit als Funktionsargument übergeben. Ich vermute (bin bin aber nicht sicher), das dies eine Fehlerquelle sein könnte.. Könnte mir einer von Euch helfen.... Danke schön !!!!! Peter |
AW: Exceptionfehlermeldung
Mehrfache Recordsets ergeben sich dann, wenn man mehrere SELECT-Anweisungen im Property [TADOQuery].SQL ablegt.
Hier ein Beispiel für problematischen Code:
Delphi-Quellcode:
Der MS SQL Server kann mehrere Recordsets liefern; MS Access kann dies nicht.
procedure TForm1.MachWas;
begin ... AdoQuery1.Close; AdoQuery1.SQL.Add('SELECT * FROM Artikel'); // Problem: wenn diese Procedure mehrfach aufgerufen wird, // dann gibt es mehrere SELECT-Anweisungen AdoQuery1.Open; ... end; |
AW: Exceptionfehlermeldung
Erst einmal vielen Dank für den Hinweis. Es scheint also kein eigentliches Problem des Delphi-Codes zu sein, mehr von Access. Ich habe versucht, nach absetzen/umsetzen des ersten SQL-Statements die Query wieder per
Delphi-Quellcode:
zu schliessen, das führte allerdings nicht zum Erfolg.oQuery.close; |
AW: Exceptionfehlermeldung
Es ging doch nicht um das Close.
Delphi-Quellcode:
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(<Befehl>); //oder alternativ ADOQuery.SQL.Text := <Befehl>; |
AW: Exceptionfehlermeldung
Nein. ich habe eben das .CLOSE genutzt um sicherzustellen, dass nicht mehrere SELECT-Anweisungen sich im Recordset befinden, so habe ich das zumindest verstanden..
Delphi-Quellcode:
Wie oben beschrieben, habe ich es ablaufen lassen, bis der Debugger schrie !!!
cSQL := 'UPDATE rohdaten SET exception_flag = null WHERE exception_flag = ' + quotedStr('XX') + ' ' ;
oQuery1.SQL.Clear; oQuery1.SQL.text := cSQL ; oquery1.Active := true; |
AW: Exceptionfehlermeldung
Wieso weist Du das SQL nicht einmalig parametrisiert zu, schließt die Abfrage, setzt den Parameterwert und rufst dann ExecSQL auf?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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