2016-06-27 15 views
1
ADOQuerySelect.Close; 
    ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)'); 
    if ComboBox6.Text <> '' then 
    begin 
    ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ; 
     ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)'); 
    end; 
ADOQuerySelect.Open; 

Ich benutze Delphi 2007, MS Access. Und ich arbeite jetzt nicht mit Parametern. Auf diesem Code habe ich Fehler: Parameter Name nicht gefunden. Ich habe viele andere Code-Varianten ausprobiert, aber alle funktionieren nicht. Ich füge Parameter Name über GUI mit Datentyp ftstring;Delphi 2007 Adoquery Parameter funktioniert nicht

Antwort

1

Im Objektinspektor sollte ADOQuerySelect 'Name' in der Liste der Parameter haben.

Sie können auch den folgenden Code verwenden, um die Parameter ‚Name‘ zu erstellen:

with ADOQuerySelect.Parameters.AddParameter do 
begin 
    Name := 'Name'; 
    DataType := ftString; 
end; 
+0

ist es, in Objektinspektor –

+0

Und ist der 'Name' in der SQL-Tabelle? –

+0

nein, sollte es in SQL-Tabelle sein? –

3

SQL in Ihrem Code ändern löscht die vorhandenen Parameter, so gibt es keine Parameter, um zu versuchen namens ‚Namen‘ zum Zeitpunkt des setze seinen Wert. Sie erstellen dann den Parameter Name, aber es ist zu spät.

die Reihenfolge der Anweisungen ändern:

ADOQuerySelect.Close; 
ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)'); 
if ComboBox6.Text <> '' then 
begin 
    ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)'); 
    ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ; 
end; 
ADOQuerySelect.Open; 

Sie Parameter verwenden sollten für alle Ihr Ersatz, BTW. Lassen Sie den Datenbanktreiber Konvertierungen und Datumsformate verarbeiten und Werte und alles für Sie angeben.

Verwandte Themen