DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lixuan123
今日帖子: 0
在线用户: 1
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 youtiao (youtiao) ★☆☆☆☆ -
普通会员
2004/4/18 23:58:01
标题:
sql查询莫名奇妙的问题 浏览:1103
加入我的收藏
楼主: 我用delphi编一个平台,其中利用sql查询用desktop建的数据表,程序如下:
procedure TForm1.suiButton7Click(Sender: TObject);
begin
Unit1.Form1.query1.close;
Unit1.Form1.query1.sql.clear;
Unit1.Form1.query1.SQL.add('select * from 主表.db where'+' '+ '电话='+suiComboBox1.text);
Unit1.Form1.query1.open;
end;
问题出来了:我的数据表中含一个‘电话’的字段其中有电话13333333333和5555555两个号码,当我查13333333333(11位)时没有问题,而查5555555(七位)则出现错误:type mismatch in expression;我做了实验:当我查超过和等于电话字段中位数为最大的号码时没有错误(本表中为11位)只要少于最大位数(本表中为11位)则会有这个错误请问这是怎么回事??谢谢!
----------------------------------------------
-
作者:
男 dl8212 (老汉) ★☆☆☆☆ -
盒子活跃会员
2004/4/19 9:49:20
1楼: Unit1.Form1.query1.SQL.add('select * from 主表.db where 电话='+#13+suiComboBox1.text+#13);

类型问题,用这个试试.

----------------------------------------------
-
作者:
女 jefliy (亮晶晶) ★☆☆☆☆ -
普通会员
2004/4/19 10:16:08
2楼: 如果“电话”字段的类型是字符,应该写成这样吧:
Unit1.Form1.query1.SQL.add('select * from 主表.db where 电话='''+suiComboBox1.text+'''');

----------------------------------------------
-
作者:
男 youtiao (youtiao) ★☆☆☆☆ -
普通会员
2004/4/20 0:22:22
3楼: 谢谢1楼和2楼,2楼的方法解决了问题,我是菜鸟那连续的三个单引号和四个单引号我看不太懂,对于那三个单引号是不是第一个和第三个匹配表示第二个单引号为字符串,然后第二个单引号和select前的那个表示中间的为一个串,还是和后四个单引号发生关系???这些引号是怎么匹配的呀?
----------------------------------------------
-
作者:
男 liu55721 ( ) ★☆☆☆☆ -
盒子活跃会员
2004/4/20 5:42:02
4楼: 取决于引号内的数据类型,像电话='''+suiComboBox1.text+''''的数据是文本类型,因为在SQL中文本类型数据要加上双引号,比如"数据",数值类型数据不需要用引号,比如重量=50之类,而电话='''+suiComboBox1.text+''''右边的第四个是与select前面的那个单引号配对.
----------------------------------------------
-
作者:
男 dl8212 (老汉) ★☆☆☆☆ -
盒子活跃会员
2004/4/20 11:56:19
5楼:  {  Unit1.Form1.query1.SQL.add('select * from 主表.db where 电话='+#13+suiComboBox1.text+#13);}

不好意思,我写错了,应该是这样的:

Unit1.Form1.query1.SQL.add('select * from 主表.db where 电话='+#39+suiComboBox1.text+#39);

----------------------------------------------
-
作者:
男 youtiao (youtiao) ★☆☆☆☆ -
普通会员
2004/4/20 14:04:46
6楼: 谢谢大家的帮忙1楼的也能解决问题了,谢谢
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS