Delphi รองรับคำสั่ง SQL แบบพารามิเตอร์ แต่ฉันไม่ค่อยใช้พารามิเตอร์/พารามิเตอร์แอตทริบิวต์และมักจะสร้าง SQL ด้วยตัวเอง
ใช้ SQL.Text: = 'SELECT * FROM .. WHERE ID =' ''+EDIT1.TEXT+'' '';
อย่างไรก็ตามวิธีนี้ต้องใช้การโจมตีฉีด SQL อย่างระมัดระวัง
วันนี้ฉันเปลี่ยนไปใช้คุณสมบัติพารามิเตอร์ของการควบคุม Adoquery เนื่องจากฉันใช้การควบคุม Adoquery เพียงครั้งเดียวและคำสั่ง SQL และพารามิเตอร์ในคำสั่งมักจะเปลี่ยนฉันจึงใช้รหัสต่อไปนี้ในโปรแกรมก่อน:
-
ADOQ.Parameters.Clear;
Adoq.Parameters.CreateParameter (... );
Adoq.Parameters.CreateParameter (... );
ADOQ.SQL.CLEAR;
ADOQ.SQL.ASSIGN (MEMO1.TEXT);
-
เมื่อดำเนินการแล้วบางครั้งก็เป็นเรื่องปกติบางครั้งก็มีการรายงานและมีบางอย่างที่กล่าวกันว่าการตั้งค่าพารามิเตอร์ที่ไม่ถูกต้องไม่ถูกต้อง (ใช้ในการเข้าถึง)
หลังจากสองวันของการโยนฉันพบว่าต้องใช้รหัสต่อไปนี้ (มันแปลกจริงๆ):
-
ADOQ.Parameters.Clear;
Parami: = Adoq.parameters.addparameter;
parami.name: = ... ;
Parami: = Adoq.parameters.addparameter;
parami.name: = ... ;
//adoq.sql.clear;
ADOQ.SQL.ASSIGN (MEMO1.TEXT);
-