郁闷中ing,请各位帮忙。解决一个数据操作的小问题

WJY2003 2004-11-30 12:51:15
代码:
id,SQL都是定义的一个变量。id这个变量是保存取到的id值

SQL := 'select name form User where id='+id;
unit2.form2.adoquery1.active := false;
unit2.form2.adoquery1.active := true;
unit2.form2.adoquery1.sql.clear;
unit2.form2.adoquery1.sql.add(SQL);
unit2.form2.adoquery1.open;
name := unit2.form2.adoquery1.FieldByName('name').AsString; 这句出错。比如:当id为2时,它提示2没有初始值是什么意思???我写的有问题呈?哪么不对?请各位指正。谢谢
unit2.form2.adoquery1.close;
...全文
160 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
WJY2003 2004-12-01
  • 打赏
  • 举报
回复
ahuige(灰不遛秋(前半身学医后半身学统计))
我也明白要试。但你明白别人的处境吗??/我没有网可以上。只能到别处查一下。在回去在自已的电脑上试。我知道 我是初学者,是有点烦。但我是真的不懂。不懂不能问啦吗??我感谢你的回答。但鄙视你对我的诬蔑。我的名字怎么啦???真不明白。一开始你就什么都会吗?
最后非常感谢谢大家的帮忙。我想技术都是一点一滴来的。我相信有一天我会超过你的( ahuige(灰不遛秋(前半身学医后半身学统计)) )
我主要用的不是delphi,但我很喜欢它。所以平时也用它学着写点东西。希望大家指教。我主要在DotNot版。
赖皮鹏 2004-11-30
  • 打赏
  • 举报
回复
SQL := 'select name form User where id='+id;

最后那个ID是STRING?
那么WHERE ID中的ID又是什么类型?
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
当然我能保证取到的这条记录永远是一条,不会是多条,就是保证是唯一性
ahuige 2004-11-30
  • 打赏
  • 举报
回复
按错了,发出来了,改不了
最后一行重打一下。你没有引号 id=2是不对的。
where id='2' 或者where id="2"才是对的
你想用哪一种都行。还在这时浪费什么时间嘛。
人家把答案写出来,你也不去试。还在这里慢慢的聊说这个人的方法没试
那个人的方法没试。
真是不想骂你。
有时想想亡灵法师说得不是完全没有道理。
ahuige 2004-11-30
  • 打赏
  • 举报
回复
你这个自称天之骄子的家伙啊。
你真的是骄子吗?
是很骄傲啊。
人家给你的回答你也不去试一下还在这里浪费时间。
还要说好明白嘛?
你一个字符变量的where语句怎么可能不在右边加引号嘛?id=2//你的ID
单双引号可能是会与
Changefish 2004-11-30
  • 打赏
  • 举报
回复
越问越多了 至于单引号的用法 前不久就有人问过这问题了
qizhanfeng 2004-11-30
  • 打赏
  • 举报
回复

SQL := 'select name form User where id='''+id+'''';
unit2.form2.adoquery1.active := false;
unit2.form2.adoquery1.sql.clear;
unit2.form2.adoquery1.sql.add(SQL);
unit2.form2.adoquery1.open;
或者
SQL := 'select name form User where id='+QuotedStr(id);

showmessage(sql)看看就知道了
delphi两个单引号表示字符串引用

WJY2003 2004-11-30
  • 打赏
  • 举报
回复
又引号我加过。
hsmserver(撒哈拉之雨的悲伤)
你说的我试过不行的。
但 ahuige(灰不遛秋(前半身学医后半身学统计)) 说的哪四个单引号还没试过
hsmserver 2004-11-30
  • 打赏
  • 举报
回复
'''+id+'''
后面再加个单引号,说明SQL是一个字符串啊。
hsmserver 2004-11-30
  • 打赏
  • 举报
回复
SQL := 'select name form User where id='''+id''';
unit2.form2.adoquery1.active := false;
unit2.form2.adoquery1.sql.clear;
unit2.form2.adoquery1.sql.add(SQL);
unit2.form2.adoquery1.open;
name := unit2.form2.adoquery1.FieldByName('name').AsString; 这句出错。比如:当id为2时,它提示2没有初始值是什么意思???我写的有问题呈?哪么不对?请各位指正。谢谢
unit2.form2.adoquery1.close;
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
喔谢谢楼上谢谢。有一个不明白。请问为什么要在
SQL := 'select name form User where id='''(为什么这儿多加两个单引号呢?后面又是4个?它们应有个对应关系吧?)+id+'''';
ahuige 2004-11-30
  • 打赏
  • 举报
回复
SQL := 'select name form User where id='''+id+'''';
ahuige 2004-11-30
  • 打赏
  • 举报
回复
我知道
因为你没加""引号在id值两边
2被判断成了一个变量名.
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
没关系。36(高桥) 谢谢你帮忙。
赖皮鹏 2004-11-30
  • 打赏
  • 举报
回复
access?
不好意思,不清楚。
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
我用的是access呀
赖皮鹏 2004-11-30
  • 打赏
  • 举报
回复
不清楚。
你可以把SQL语句放到查询分析器中运行,看它给你什么提示。(SQL SERVER)
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
id为2时,它提示2没有初始值是什么意思???这是什么原因造成的呢??
赖皮鹏 2004-11-30
  • 打赏
  • 举报
回复
SQL := 'select name form User where id='+quotedstr(id);
WJY2003 2004-11-30
  • 打赏
  • 举报
回复
都是两者类型是相同的。都是string

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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