AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenmenge geschlossen
Thema durchsuchen
Ansicht
Themen-Optionen

Datenmenge geschlossen

Ein Thema von Luca Haas · begonnen am 7. Mär 2018 · letzter Beitrag vom 9. Mär 2018
Antwort Antwort
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Datenmenge geschlossen

  Alt 7. Mär 2018, 15:30
Datenbank: MSSQL • Version: ? • Zugriff über: TADO Query
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:
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;
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.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Datenmenge geschlossen

  Alt 7. Mär 2018, 15:37
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;
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Datenmenge geschlossen

  Alt 7. Mär 2018, 15:42
Ne so bekomme ich leider die selbe Fehlermeldung
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#4

AW: Datenmenge geschlossen

  Alt 7. Mär 2018, 16:56
Hmm..


Wie sieht denn dein FormClose von TSucheReisekostenForm aus?
Wird dort eventuell die Datenmenge geschlossen?

Wenn Ja, dann passt die Fehlermeldung
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Datenmenge geschlossen

  Alt 7. Mär 2018, 19:19
Hallo,
Delphi-Quellcode:
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]);
bitte lokale Variablen verwenden
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.
Heiko
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Datenmenge geschlossen

  Alt 9. Mär 2018, 08:13
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

@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
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Datenmenge geschlossen

  Alt 9. Mär 2018, 08:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#8

AW: Datenmenge geschlossen

  Alt 9. Mär 2018, 09:59
Moin...
Zitat:
ich habe in einer anderen Prozedur Mist gebaut was sich auf die Codestelle ausgewirkt hat
...typischer Layer8 Fehler. ...oder https://en.wiktionary.org/wiki/PEBCAK
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz