Hi,
ich habe folgendes:
Delphi-Quellcode:
...
with Query do
begin
SQL.Add('
SELECT '+FieldName);
SQL.Add('
FROM '+Tablename);
SQL.Add('
WHERE valid is not NULL ');
Open;
// Da die Tabelle leer ist, ist Recordcount hier auch 0
if Query.RecordCount<>0
then
result:= IntToStr(StrToInt(Fields[0].AsString))
else
begin
Close;
SQL.Clear;
SQL.Add('
SELECT max('+FieldName+'
)');
SQl.Add('
FROM '+TableName);
SQL.Add('
WHERE valid is null or valid='+QuotedStr('
0'));
Open;
// diese Abfrage liefert aber 1
if Query.RecordCount=0
then
result:= IntToStr(1)
Warum erhalte ich für die zwei Abfragen jeweils zwei verschiedene Ergebnisse, obwohl die Tabelle leer ist?
Liefert max etwa einen Datensatz zurück? Warum? Habe ich etwas wesentliches übersehen?