Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Query = nil nach Query.open...aber nicht immer

  Alt 13. Jan 2016, 17:11
ja, sehe ich genau so, aber: siehe oben: kein Thread, kein Timer, kein COM, kein nichts
Ob die Methode von einem Thread aufgerufen wird kann man an dem Code nicht erkennen

Rufst du irgendwo an anderer Stelle FreeAndNil auf oder setzt Query1 auf nil?
Falls ja setz mal einen Breakpoint an diese Stellen.

Hat die Query irgendwelche Ereignisse oder ist die Query über eine Datasource mit einem oder mehreren Controls verbunden die Ereignisse haben?
Falls ja: Mach mal Breakpoints in diese Ereignisse und beobachte mal Query1 wärend du durchstepst.

Falls das alles nicht zutrifft (oder du es trotzdem mal probieren willst):

Knallt es auch wenn du eine lokale Query-Variable anlegst und dieser Query1 zuweist und damit weiter arbeitest?
Quasi so:

Delphi-Quellcode:
function TDataModule1.OpenCommand(query : string;field:string;var value: string; firstrecord : boolean = True) : boolean;
var dummyQuery: TQuery; // Oder welche Query Klasse du auch immer verwendest
begin
  dummyQuery := query1;

  dummyQuery .close;
  dummyQuery .sql.clear;
  dummyQuery .sql.add(query); // hier ist es noch ok
try
  value := '';
  dummyQuery .Open; // hier auch noch
  if dummyQuery .RecordCount > 0 then // rumms.....
  begin
    if not firstrecord then
      query1.last;
    value := dummyQuery .fieldbyname(Field).AsString;
  end;
  dummyQuery .close;
  result := true;
except
  dummyQuery .close;
  result := false;
end;
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat