求助:我都快累死了!谁能帮我解脱啊!
在delphi中用TQuery读取oracle库中的一个表usr,而该表的一个字段uid是char(10)类型,我用
username := 'dannyr';
with TQ do
begin
CLose;
SQL.clear;
SQL.add('select * from usr where uid=:id');
parambyname('id').asstring := username;
open;
end;
来查询,
但是查询结果为空,而用username := 'dannyr ';在username后加4个空格却可以,所以每次查询时都要用空格来填充,真是很累啊,有没有别的好方法,请大家帮帮我!谢谢!
问题点数:20、回复次数:14Top
1 楼shinesi(DaBaiCai)回复于 2001-11-29 10:18:23 得分 0
那是因为你库中的数据带有空格,你把它们去掉不就行了。
update usr set uid=RTrim(uid)Top
2 楼dannyr(Dannyr MX)回复于 2001-11-29 10:19:40 得分 0
数据库保存的时候时没有空格的,查询出来的结果也是没有空格的!Top
3 楼zzllabc(抱朴子--清心释累,绝率忘情)回复于 2001-11-29 10:22:08 得分 0
这个问题很奇怪啊!
Top
4 楼dannyr(Dannyr MX)回复于 2001-11-29 10:24:50 得分 0
是啊,在sql explore中查询是不用加空格的,而在程序中是必须加空格才可以,数据库换为sybase的也是一样啊!现在有很多字段都用的是char()类型,我真的很累了,谁能帮助我呢?Top
5 楼dannyr(Dannyr MX)回复于 2001-11-29 10:31:41 得分 0
而数据类型是varchar的是不用加空格的,可以直接匹配的。Top
6 楼dannyr(Dannyr MX)回复于 2001-11-29 10:36:57 得分 0
有谁能够帮助我!Top
7 楼xzgyb(老达摩)回复于 2001-11-29 10:40:54 得分 20
或者改类型
或者也可以这样啊
SQL.add('select * from usr where rtrim(uid)=:id');
Top
8 楼dannyr(Dannyr MX)回复于 2001-11-29 10:42:08 得分 0
类型是不能改的,下面的方法我去试试!Top
9 楼xzgyb(老达摩)回复于 2001-11-29 10:44:21 得分 0
我以前用pb遇到过
不过现在用却没问题了,不知怎么回事Top
10 楼escaper(escaper)回复于 2001-11-29 10:44:35 得分 0
你写一段代码,让username不足十个长度的话,自动补充空格使其长度为十,不就行了嘛,很多事情搞不清, 只有能用,也差不多了。Top
11 楼dannyr(Dannyr MX)回复于 2001-11-29 10:46:55 得分 0
搞定了,谢谢zzgyb,你要几分啊?Top
12 楼dannyr(Dannyr MX)回复于 2001-11-29 10:50:16 得分 0
是啊,我用的就是做一个循环,但不同的字段,循环不一样啊,每次都要做,很麻烦啊!Top
13 楼dannyr(Dannyr MX)回复于 2001-11-29 10:51:37 得分 0
pb在程序理是可以的,只是pb的数据库工具中的查询也要加空格的Top
14 楼xzgyb(老达摩)回复于 2001-11-29 11:00:24 得分 0
OK,解决就好
随便了,不过怎么变成了zzgyb,呵呵Top




