Wer steht denn im IN_Data?
Wenn da z.B. \ oder ' drin vorkommt, dann muß es ja knallen.
Warum nehmt Ihr keine Parameter.
Und Makros.
Der Name des Feldes kann ja nicht als Parameter übergeben werden.
Nja, oder alternativ die entsprechenden Funktion zum Quoten der Strings und Namen verwenden.
Delphi-Quellcode:
Query.Sql.Text = '
SELECT * FROM &Table WHERE &Field = :Data';
Query.MacroByName('
Table').Value := QuoteIdent(IN_Table);
// Ich glaub Makros werden nicht automatisch gequotet, bzw. ich bin mir relativ sicher.
Query.MacroByName('
Field').Value := QuoteIdent(IN_Table + '
Name');
Query.ParamByName('
Data').AsString := IN_Data;
Query.Open;
Query.Sql.Text = '
SELECT * FROM ' + QuoteIdent(IN_Table) + '
WHERE ' + QuoteIdent(IN_Table + '
Name') + '
= ' + QuoteText(IN_Data);
Query.Open;
// QuoteIdent und QuoteText entsprechend anpassen ... die heißen ja überall irgendwie anders