DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 19137911446
今日帖子: 19
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 14:12:39
标题:
关于sqlquery的问题,在线等待,用其他的空间是正确的 浏览:1284
加入我的收藏
楼主: SQLQuery1.SQL.Add('select * from city where id=''+str+'')这样不能查出正确的结果,结果为0,但是将str换成字符常量就可以了,这个是什么原因?
----------------------------------------------
2222
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 14:40:40
1楼: str的位置是常量还是变量不影响,重要的是数据类型匹配。一定是别的原因引起的,你把相关原码贴上来看看
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 14:46:53
2楼:
     str:=trim(fs[1].Name);
loginfrm.SQLQuery1.SQL.Clear;
     loginfrm.SQLQuery1.SQL.Add('select * from city where id=''+'xys'+'');
     loginfrm.SQLQuery1.Open;
这样就好了,如果把'xys'换成str就出错了,但是我把sqlquery换成aqoquery以后,一切是好的
----------------------------------------------
2222
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 14:53:31
3楼: 你试试这样能否通过:
loginfrm.SQLQuery1.SQL.Add(Format('select * from city where id=%s',[str]));
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:07:46
4楼: 这样还是不行,直接是编译就有问题
----------------------------------------------
2222
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:14:24
5楼: 刚才的语句有问题,忘了加引号了。sorry
loginfrm.SQLQuery1.SQL.Add(Format('select * from city where id=%s',[QuotedStr(str)])); 
再试一下。
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:16:32
6楼: 给原来一样的,不知道是什么原因?
----------------------------------------------
2222
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:19:35
7楼: 没辙了,语句没什么不对的地方。
如果你把语句中的“=”换成 “like”,看看会出现什么结果吧
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:31:09
8楼: 这些早都试过了
----------------------------------------------
2222
作者:
男 luckhacker (luckhacker) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 15:35:43
9楼:  STR是字符型的吗?
----------------------------------------------
-
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 9:51:59
10楼: 恩,现在这个问题弄了我一天,我用ado连接是好的一切查询都是正常的
----------------------------------------------
2222
作者:
男 cjrb (Thinking In 魂) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 10:18:36
11楼:
把语句显示出来
str:=trim(fs[1].Name);//是不是这个不为'xys'
loginfrm.SQLQuery1.SQL.Clear;
loginfrm.SQLQuery1.SQL.Add('select * from city where id=''+str+'');
ShowMessage(loginfrm.SQLQuery1.SQL.Text);//
loginfrm.SQLQuery1.Open;

----------------------------------------------
按此在新窗口浏览图片 充电..........
作者:
男 luckhacker (luckhacker) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 13:45:40
12楼: 我的一般是这么写的:

 With qry_city do 
  Begin
   Close;
   Sql.clear;
   Sql.add('select * from city where id='+''+str+'');
   Prepare;
   OPen;
  End;
 
当SQL中使用的参数是字符型时,请注意引号的配对问题。
----------------------------------------------
-
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 13:47:16
12楼: 谢谢楼上的兄弟,原来是大小写的问题,这个把我折腾了一整天了,老觉得是我的程序的问题,希望各位朋友不要在犯跟我一样愚蠢的错误
----------------------------------------------
2222
作者:
男 lzgvcd (111) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 13:49:01
13楼: 对了,我还想问个问题,就是开始我用locate为什么不能用,哪个忽略大小写的参数用ado能用,用这个还是不行,我再试一下
----------------------------------------------
2222
作者:
男 cjrb (Thinking In 魂) ★☆☆☆☆ -
盒子活跃会员
2004/3/4 20:45:59
14楼: locate是要数据集打开以后才能用的。
----------------------------------------------
按此在新窗口浏览图片 充电..........
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS