2013-06-04 16 views
6

Ich bin mit Delphi 7 und Access 2007.Parameter in SQL - Delphi 7

ich wissen will, kann mir jemand zeigen, wie Parameter, die mit SQL-Anweisungen und ADO verwenden.

Was ist die notwendige Codierung und so weiter. Tut mir leid, ich bin neu in Delphi.

+0

+1 für die Frage, wie Parameter zu verwenden sind, anstatt String-Verkettung (und SQL-Injection-Angriffe) zu verwenden! –

Antwort

9

Setzen Sie einfach die Abfrage SQL, und füllen Sie dann die Parameter. Verwenden Sie natürlich Parameternamen, die für Sie sinnvoll sind; Ich habe gerade LastName und FirstName für Beispiele verwendet. Ich habe aktualisiert, um TADOQuery statt nur TQuery nach Ihrer Bearbeitung der Frage zu verwenden.

ADOQuery1.SQL.Clear; 
ADOQuery1.SQL.Add('SELECT * FROM MyTable'); 
ADOQuery1.SQL.Add('WHERE LastName = :LastName AND'); 
ADOQuery1.SQL.Add('FirstName = :FirstName'); 

// Populate the parameters and open it 
ADOQuery1.Parameters.ParamByName('LastName').Value := 'Jones'; 
ADOQuery1.Parameters.ParamByName('FirstName').Value := 'James'; 
ADOQuery1.Open; 
// Use query results 

ADOQuery1.Close; 
// Populate parameters with new values and open again 
// Populate the parameters and open it 
ADOQuery1.Parameters.ParamByName('LastName').Value := 'Smith'; 
ADOQuery1.Parameters.ParamByName('FirstName').Value := 'Sam'; 
ADOQuery1.Open; 
// Use new query results 

ADOQuery1.Close; 
+0

Vielen Dank, dass hilft. Großartig, um eine Website zu haben, auf der Sie schnell Antworten erhalten. – 4DaMouf

+1

Es wird als keine gute Idee angesehen, 'select * from' zu verwenden, insbesondere wenn einem Anfänger ein Code angezeigt wird. Es ist immer besser, die genauen Feldnamen festzulegen. –

+3

@ No'amNewman: Die Frage hat nicht gefragt, wie man SQL schreibt. Es fragte, wie man Parameter in Delphi verwendet, was ich geantwortet habe. Wenn die Frage Informationen über das verwendete Schema geliefert hätte, hätte ich etwas anderes verwendet. Ich habe auch keine echte Tabelle benutzt. Vielen Dank für Ihr Feedback. :-) –