why?(20分)

  • 主题发起人 主题发起人 jjy_888
  • 开始时间 开始时间
J

jjy_888

Unregistered / Unconfirmed
GUEST, unregistred user!
请看一段代码,哪里出问题了?
procedure TForm1.ButtonSendClick(Sender: TObject);
var
s:string;
begin
if editpm.Text<>'' then
With ADOQuery1 do
begin
Active:=true;
close;
sql.clear;
sql.Add('select * from patient');
sql.Add('insert into patient(patient_name)');
sql.Add('values(:s)');
Parameters.ParamByName('s').value:=EditPM.text;
ExecSQL;
end;

end;
 
1.adoQuery.active:=true 在功能上相当与adoQuery.open,所以Active:=true;一句当删
2.select * from patient
insert into patient(patient_name)
values(:s)
数据库不会执行这样的SQL语法
你如果是想将EditPm.text中的字符值插入到patient表中,请直接用
insert into patient(patient_name)
values(:s)
最好还是不用参数的好
strSql:=‘insert into patient(patient_name) values(''‘+EditPm.text+’'')‘;
直接用
adoQuery.close;
adoQuery.sql.clear;
adoQuery.sql.add(strSql);
adoQuery.execSql;



 
接受答案了.
 

Similar threads

后退
顶部