ich beschäftige mich damit in meinen Datenbank SQL.Text auf Parameter umzusteigen. Leider schlägt jeder Versuch fehl.
Meine eingesetzte Datenbank und Komponenten
- Datenbank MariaDB-10, (XAMPP)
- ZeosLIb (TZConnection, und TZQuery)
- Lazarus IDE (TDataSource)
Ich habe nach diesem Beispiel von https://wiki.freepascal.org/SqlDBHowto eine Prozedure geschrieben.
Code: Alles auswählen
procedure Form2.FindCustomer(const TableName : string; const StrSearchField : String; const StrSearchText : String);
begin
Form2.ZQuery4Kunden.SQL.Clear;
with Form2.ZQuery4Kunden do
Begin
Form2.ZQuery4Kunden.Close;
Form2.ZQuery4Kunden.SQL.Text := 'SELECT * FROM :TableName WHERE :StrSearchField LIKE :StrSearchText';
Form2.ZQuery4Kunden.Open;
Form2.ZQuery4Kunden.Refresh;
end;
end;
Ersetze ich die Select Abfrage durch:sql error you have an error in your sql syntax; check the manual... near ' Null WHERE NULL LIKE NULL at line 1.
Code: Alles auswählen
Form2.ZQuery4Kunden.SQL.Text := 'SELECT * FROM '+TableName+' WHERE '+StrSearchField+' LIKE ''%'+StrSearchText+'%'';';
Ich möchte den Parameter der gesucht wird mit %:Parameter% ausstatten um den gesuchten String auch als Teil finden zu können.
Beispiel: Mustermann Gesellschaft für Solartechnik mbH
Ich möchte bei der Eingabe von Mustermann und bei der Eingabe von Solartechnik die passenden Datensätze finden.
Meine Fragen dazu:
- Wie setzt man Parameter richtig ein und was benötigt man dazu?
- Beispiel Eintrag unter uses oder wo liegen die Fehler in der Procedure?
- Beispiele oder Anleitungen im Netz?
- Bücher zum Thema?
- Wie habt ihr es gelernt? Wo habt ihr euer Wissen her?