为什么这个查询不对啊?

later 2003-03-22 02:36:16
procedure Tform1.Button1Click(Sender: TObject);
begin

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select id from student where student.id= student.id');
query1.ParamByName('id').AsString:=edit1.Text;
query1.Prepare;
query1.Open;
end;
是不是要在edit1.text上面加一个strtoint???
...全文
53 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
later 2003-03-22
  • 打赏
  • 举报
回复
没有问题,马上给分
wujunliang 2003-03-22
  • 打赏
  • 举报
回复
=号后紧接:
myling 2003-03-22
  • 打赏
  • 举报
回复
问题已经解决了

给点分吧

chechy(简简单单的活)

四星!!!

厉害 是不是40000分以上呀!!!!

我什么时候升星呀

ycxuyuq 2003-03-22
  • 打赏
  • 举报
回复
try finally end 比较好,不管什么情况都能被执行
sysu 2003-03-22
  • 打赏
  • 举报
回复
长整型就不要加引号了:
query1.SQL.Add('select * from student where student.id= '+edit1.Text);

form1如果不是动态创建的话不用你来free的,程序退出由Application来释放。
later 2003-03-22
  • 打赏
  • 举报
回复
我用chechy的答案运行,可以执行
我对楼下的解决方案理解是这样的
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from student where student.id= '''+edit1.Text+'''');
//query1.ParamByName('id').AsString:= edit1.Text;
query1.Prepare;
query1.Open;

可是编译结果说 参数不符合,我估计是转换的问题
我设定id为长整型,那应该怎么做了?

对了,释放内存的语句form1.free,是不是应该写在form1close事件中?
还是用try finally end语句来实现?哪种好一点?谢谢
Magusflp008 2003-03-22
  • 打赏
  • 举报
回复
楼上几位有没有考虑到 student.id 为char型???
我认为 首先搞清楚student.id的类型
如果是char 则应该象
snake_eye(黄昏深处的白骨盾牌) 的前一种解答:

'select id from student where student.id='''+edit1.Text+''''
snake_eye 2003-03-22
  • 打赏
  • 举报
回复
哦写错了应该是:select id from student where student.id=:id

ParamByName('id').AsInteger:=strtointd(edit1.Text);
snake_eye 2003-03-22
  • 打赏
  • 举报
回复
'select id from student where student.id='''+edit1.Text+''''
BES 2003-03-22
  • 打赏
  • 举报
回复
=student.id 改為:ID 以參數的形式
ParamByName('ID').AsInteger := ...
yuanfy 2003-03-22
  • 打赏
  • 举报
回复
问题还是在这里:
'select id from student where student.id= student.id'
参数没能传进来
sysu 2003-03-22
  • 打赏
  • 举报
回复
procedure Tform1.Button1Click(Sender: TObject);
begin

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select id from student where student.id= :id');// :id表示参数
query1.ParamByName('id').AsInteger:=strtointdef(edit1.Text,-1);
query1.Prepare;
query1.Open;
end;
chechy 2003-03-22
  • 打赏
  • 举报
回复
try this:
procedure Tform1.Button1Click(Sender: TObject);
begin

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select id from student where student.id= :id');
query1.ParamByName('id').AsString:=edit1.Text;
query1.Prepare;
query1.Open;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧