![]() |
Datenbank: MSSQL • Version: ? • Zugriff über: TADO Query
Datenmenge geschlossen
Hi Luete, habe ein Problem mit einer Funktion, mit der ich einen Datensatz oder eine Teilmenge (alle Daten die nach Filterung in ReisekostenForm.DBGrid sind) in meine normale Form übergeben möchte. Diese sieht soweit so aus
Delphi-Quellcode:
Ich bekomme allerdings die Fehlermeldung ReisekostenQuery: Operation bei geschlossener Datenmenge nicht ausführbar, ich weiß aber nicht was ich ändern muss... Der Fehler tritt in den beiden Zeilen unter der Abfrage zu gvarStatus auf.
procedure TReisekostenForm.SearchBtnClick(Sender: TObject);
var SucheReisekostenForm: TSucheReisekostenForm; begin try SucheReisekostenForm := TSucheReisekostenForm.Create(self); begin SucheReisekostenForm.ShowModal(); begin if gvarStatus = 1 then // für einen Datensatz OpenParamQuerySQL(ReisekostenQuery, 'SELECT * FROM Reisekosten WHERE ID = :ID AND MANr = :MANr ORDER BY ID ASC', ['ID', 'MANr'], [SucheReisekostenForm.ReisekostenQuery.FieldByName('ID').AsInteger, SucheReisekostenForm.ReisekostenQuery.FieldByName('MANr').AsInteger]); if gvarStatus = 2 then // für eine Teilmenge OpenParamQuerySQL(ReisekostenQuery, SucheReisekostenForm.QBuilder.SQL, SucheReisekostenForm.PV); if TeilmengeOffen = 1 then TeilMengeBtn1.Enabled := true; end; end; finally SucheReisekostenForm.Release(); end; end; |
AW: Datenmenge geschlossen
Wie ist es denn so?
Delphi-Quellcode:
procedure TReisekostenForm.SearchBtnClick(Sender: TObject);
var SucheReisekostenForm: TSucheReisekostenForm; begin try SucheReisekostenForm := TSucheReisekostenForm.Create(self); begin SucheReisekostenForm.ShowModal(); begin ReisekostenQuery.Open; SucheReisekostenForm.ReisekostenQuery.Open; if gvarStatus = 1 then // für einen Datensatz OpenParamQuerySQL(ReisekostenQuery, 'SELECT * FROM Reisekosten WHERE ID = :ID AND MANr = :MANr ORDER BY ID ASC', ['ID', 'MANr'], [SucheReisekostenForm.ReisekostenQuery.FieldByName('ID').AsInteger, SucheReisekostenForm.ReisekostenQuery.FieldByName('MANr').AsInteger]); if gvarStatus = 2 then // für eine Teilmenge OpenParamQuerySQL(ReisekostenQuery, SucheReisekostenForm.QBuilder.SQL, SucheReisekostenForm.PV); if TeilmengeOffen = 1 then TeilMengeBtn1.Enabled := true; ReisekostenQuery.Close; SucheReisekostenForm.ReisekostenQuery.Close; end; end; finally SucheReisekostenForm.Release(); end; end; |
AW: Datenmenge geschlossen
Ne so bekomme ich leider die selbe Fehlermeldung :?
|
AW: Datenmenge geschlossen
Hmm..
Wie sieht denn dein FormClose von TSucheReisekostenForm aus? Wird dort eventuell die Datenmenge geschlossen? Wenn Ja, dann passt die Fehlermeldung ;) |
AW: Datenmenge geschlossen
Hallo,
Delphi-Quellcode:
bitte lokale Variablen verwenden
ReisekostenQuery.Open; // wieso hier schon das Open?
SucheReisekostenForm.ReisekostenQuery.Open; // sollte diese Query nicht noch offen sein? if gvarStatus = 1 then // für einen Datensatz OpenParamQuerySQL(ReisekostenQuery, 'SELECT * FROM Reisekosten WHERE ID = :ID AND MANr = :MANr ORDER BY ID ASC', ['ID', 'MANr'], [SucheReisekostenForm.ReisekostenQuery.FieldByName('ID').AsInteger, SucheReisekostenForm.ReisekostenQuery.FieldByName('MANr').AsInteger]); SucheReisekostenForm.ReisekostenQuery.FieldByName( 'ID').AsInteger -> Id: Integer; SucheReisekostenForm.ReisekostenQuery.FieldByName( 'MANr').AsInteger -> MANr: Integer; Was konkret macht OpenParamQuerySQL ? PS: Die lokalen Variablen dienen einerseits der besseren Übersicht. Ausserdem weißt Du dann genau, wo genau die Fehlermeldung kommt. |
AW: Datenmenge geschlossen
Zu erst einmal tut es mir leid, dass ich gestern nicht geantwortet habe, ich war in der Berufsschule und hatte diesen Thread ein wenig vergessen :gruebel:
@HolgerX Ich habe nichts im FormClose was die entsprechenden Codezeilen beeinflussen sollte. @hoika Habe die beiden zu lokalen Variablen geändert, hat allerdings auch nicht geholfen. OpenParamQuerySQL benutze ich um meine Query mit den entsprechenden Parametern, welche in der eckigen Klammer definiert sind, zu öffnen |
AW: Datenmenge geschlossen
Okay ich habe den Fehler gefunden, ich habe in einer anderen Prozedur Mist gebaut was sich auf die Codestelle ausgewirkt hat.
Danke für eure Hilfe.:thumb: |
AW: Datenmenge geschlossen
Moin...:P
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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