SELECT
是唯一应该与 一起使用的语句ADOQuery.Open
,因为它通过选择行并返回它们来返回一个行集。
INSERT
、 'UPDATE' 和 'DELETE' (以及CREATE
、DROP
和ALTER
)不返回行集,因此您应该使用ADOQuery.ExecSQL
。
ADOQuery1.SQL.Clear;
adoquery1.SQL.Text := 'INSERT INTO tbllogin (txusername, txpassword, link, full_name) VALUES ("' + e1 + '","' + e2 + '","' + cb2 + '","' + e4 + '");';
adoquery1.ExecSQL;
另外,请在此处对SQL 注入进行一些研究,并停止连接您的 SQL。首先要学会正确地使用参数化语句。它不仅更安全,而且从 DBMS 中提供了更好的性能。写上面的正确方法INSERT
是这样的:
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('INSERT INTO tbllogin');
ADOQuery1.SQL.Add('(txusername, txpassword, link, full_name)');
ADOQuery1.SQL.Add('VALUES (:txusername, :txpassword, :link, :full_name)');
ADOQuery1.Parameters.ParamByName('txusername').Value := e1;
ADOQuery1.Parameters.ParamByName('txpassword').Value := e2;
ADOQuery1.Parameters.ParamByName('link').Value := cb2;
ADOQuery1.Parameters.ParamByName('full_name').Value := e4;
ADOQuery1.ExecSQL;