nicht hübsch und nicht spannend:
Delphi-Quellcode:
function TDataModule1.OpenCommand(
query :
string;field:
string;
var value:
string; firstrecord : boolean = True) : boolean;
begin
query1.close;
query1.sql.clear;
query1.sql.add(
query);
// hier ist es noch ok
try
value := '
';
query1.Open;
// hier auch noch
if query1.RecordCount > 0
then // rumms.....
begin
if not firstrecord
then
query1.last;
value := query1.fieldbyname(Field).AsString;
end;
query1.close;
result := true;
except
query1.close;
result := false;
end;
end;
aber wie schon gesagt: es funktioniert nicht prinzipiell nicht sondern nur manchmal!
Ich würde auf Recordcount nicht abfragen, dass kann nur in die Hose gehen.
Wie wäre es mit....
Delphi-Quellcode:
function TDataModule1.OpenCommand(
query :
string;field:
string;
var value:
string; firstrecord : boolean = True) : boolean;
var
aQuery : TQuery;
begin
Result := False;
value := '
';
aQuery := TQuery.Create(
nil);
try
try
aQuery.Database := XYZ
aQuery.sql.text :=
query;
aQuery.Open;
if not aQuery.Eof
then
begin
if not firstrecord
then aQuery.last;
value := aQuery.fieldbyname(Field).AsString;
Result := True;
end
else
begin
Value := '
Keine Ergebnismenge!'
end;
aQuery.Close;
except
On e.Exception .....
end;
finally
aQuery.Free
end;
end;