Du könntest mit ...
SomeDataTable.Clear();
... die alten Ergebnisse aus der Tabelle bekommen.
AAABEEER...
Warum ein ganzes DataSet wenn du nur einen Wert haben willst?
Für solche Fälle gibt es die ExecuteScalar Methode des Providers deines Vertrauens.
Edit: Ich habe jetzt noch ein wenig Mittagspause geopftert, um es zu D8 zu übersetzen (Sollte
IMHO so passen
)
Delphi-Quellcode:
function getUmrechnung( pConnection :OracleConnection; pName :string ) :string;
var
bldSelText :System.Text.StringBuilder;
cmdSelEinheiten :OracleCommand;
i_Name :OracleParameter;
begin
{$region 'Build Select Command'}
bldSelText := System.Text.StringBuilder.Create();
bldSelText.Append('SELECT Umrechnung'#10);
bldSelText.Append('FROM Einheiten'#10);
bldSelText.Append('WHERE Einheit_Name = :i_Name');
cmdSelEinheiten := OracleCommand.Create(bldSelText.ToString()
,pConnection);
i_Name := cmdSelEinheiten.Parameters.Add('i_Name'
,OracleType.VarChar
,255);
{$endregion}
i_Name.Value := pName;
try
result := cmdSelEinheiten.ExecuteScalar().ToString();
except on System.NullReferenceException Do
result := System.String.Empty;
end;
end;
Edit: War doch ein Fehlerchen drin....