2013-06-04 32 views
6

Tôi đang sử dụng Delphi 7 và truy cập 2007.Các thông số trong SQL - Delphi 7

Tôi muốn biết bất cứ ai có thể chỉ cho tôi cách sử dụng thông số với câu lệnh SQL và ADO.

Mã hóa cần thiết và vv. Xin lỗi tôi mới đến Delphi.

+0

+1 để hỏi cách sử dụng tham số, thay vì sử dụng nối chuỗi (và tấn công SQL injection)! –

Trả lời

9

Chỉ cần đặt truy vấn SQL và sau đó điền thông số. Sử dụng tên tham số có ý nghĩa với bạn, tất nhiên; Tôi vừa sử dụng các ví dụ LastNameFirstName. Tôi đã cập nhật để sử dụng TADOQuery thay vì chỉ TQuery sau khi bạn chỉnh sửa câu hỏi.

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

Cảm ơn rất nhiều giúp. Thật tuyệt khi có trang web nơi bạn có thể nhận câu trả lời nhanh chóng. – 4DaMouf

+1

Bạn không nên sử dụng 'select * from', đặc biệt khi hiển thị mã cho người mới bắt đầu. Nó luôn luôn là tốt hơn để quy định các tên trường chính xác. –

+3

@ No'amNewman: Câu hỏi không hỏi làm thế nào để viết SQL. Nó hỏi làm thế nào để sử dụng các thông số trong Delphi, đó là những gì tôi trả lời. Nếu câu hỏi đã cung cấp thông tin về lược đồ mà họ đang sử dụng, tôi sẽ sử dụng một cái gì đó khác. Tôi đã không sử dụng một tablen ame thực, một trong hai. Cảm ơn phản hồi của bạn, mặc dù. :-) –

Các vấn đề liên quan