菜鸟问题(100分)

  • 主题发起人 主题发起人 shell~
  • 开始时间 开始时间
S

shell~

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个学生表内有学号姓名字段现要用一个edit输入学号查询
procedure TForm1.Button1Click(Sender: TObject);
begin
with query1 do
begin
close;
SQL.clear;
sql.Add('select * from student.db where 学号 like:no');
parambyname('no').asstring:=edit1.Text;
prepare;
open;
end;
end;
请问我哪里错了???
 
出什么错误啊,具体一点
 
提示no有错
 
NO是参数,应该为@NO
 
with query1 do
begin
close;
SQL.clear;
sql.Add('select * from student.db where 学号 like :@no');
parameters.ParamByName ('@no').value:=edit1.text;
prepare;
open;
end;



 
这样改试试看:
with query1 do
begin
close;
SQL.clear;
sql.Add('select * from student.db where 学号 like :no');
params[0].asstring:=edit1.text
prepare;
open;
end;

 
一般这种错误如果语法没错的情况都是因为用了系统变量名,如Date,你可以改一下变量名看看
 
王公子的可能不正确, 把no改一下,
且like的执行效率不高,不如干脆 学号=:stNO
 
侬试一下就知了,肯定对呀
 
先得确认一下你用的是何种数据库才能明确你用的输入参数是否正确。
还有,不知你的query在前面是如何定义的,可能程序在运行中会找不到no这个输入参数。
查看一下createparameter。
如果你用的query是多次对sql.text赋值的,那么最好不要使用输入变量,而是直接将内容
拼接成字符串对数据库进行操作。
你需要模糊查询吗,不需要的话按gong666的做法去调整。即使需要模糊查询,语法也有
错误! 在oracle中需要like '%???%',其中???为no的内容,在sql server 中不太清楚。
 
到底提示的是什么错
 

Similar threads

后退
顶部