我的查询语句是:SELECT * FROM sms_user WHERE user_no = :no AND user_code = :code
运行代码为:ADOQueryUser.Parameters.ParamByName('no').Value := Trim(EditBh.Text);
ADOQueryUser.Parameters.ParamByName('code').Value := Trim(Editkl.Text);
ADOQueryUser.Open;
下面判断是否有记录。
运行时,在Editkl中输入不正确值时可以执行下面的判断,
错误在不输入时报“Parameter对象被不正确地定义,提供了不一致或不完整的信息”
而不执行下面的判断部分。字段都是varchar
请问可能错在哪,执行语句有问题,还是什么地方概念有问题
运行代码为:ADOQueryUser.Parameters.ParamByName('no').Value := Trim(EditBh.Text);
ADOQueryUser.Parameters.ParamByName('code').Value := Trim(Editkl.Text);
ADOQueryUser.Open;
下面判断是否有记录。
运行时,在Editkl中输入不正确值时可以执行下面的判断,
错误在不输入时报“Parameter对象被不正确地定义,提供了不一致或不完整的信息”
而不执行下面的判断部分。字段都是varchar
请问可能错在哪,执行语句有问题,还是什么地方概念有问题
begin
close;
sql.clear;
sql.text:='SELECT * FROM sms_user WHERE user_no = :no AND user_code = :code';
Parameters.ParamByName('no').Value := Trim(EditBh.Text);
Parameters.ParamByName('code').Value := Trim(Editkl.Text);
prepared;
Open;
if isempty then
begin
close;
exit; end;
end;
----------
文本内容为空,应该用null代替吧
begin
close;
sql.clear;
sql.text:='SELECT * FROM sms_user WHERE user_no = :no AND user_code = :code';
Parameters.ParamByName('no').Value := '"'+Trim(EditBh.Text)+'"';
Parameters.ParamByName('code').Value := '"'+Trim(Editkl.Text)+'"';
prepared;
Open;
if isempty then
begin
close;
exit; end;
end;加俩引号试一下