大家来看看,这是什么怪现象,是ADO的bug还是我的系统出问题了(100分)

K

kalituo

Unregistered / Unconfirmed
GUEST, unregistred user!
本人今天对以前做过的一个程序做了一点小小的修改(仅仅是将字段显示的名字换了一个),
怪事就出现了:
查询使用了模糊匹配,即不输任何条件,则表格中应该显示所有记录,但是修改后的
程序却一条记录也不显示了。经过我多方跟踪,发现查询字段的类型由varchar变成了char,
参数传递到服务器后,通配符‘%’后还更上了一串长长的空格符。

请各位高手赐教,这是什么原因,怎样解决???有没有人碰到过类似的情况???
 
有没有安装ADO的补丁
 
你只要trim一下不就可以了
 
字段类型如果是char的确要求输入的长度是你定义的char的长度,如果是varchar就不会这样
了,它的长度随输入字段的长度而改变
 
to 林西:我已经装了ADO补丁2

to fbyang:我用了trim,但是压根就没用,空格是系统自动加上的

to terry_lzs:数据库中的字段我定义的是nvarchar,在Delphi中是由系统自动识别是char还是
varchar的,我跟踪发现系统识别为了char.而我以前编译的程序运行时,系统识别
为varchar,你说怪不怪

有没有什么办法,难道只有重装系统系统了吗???
 
大概重启一遍就可以了,我以前也碰到过。可能是版DELPHI的缘故吧。
 
9861,我已经重启过很多遍了,苦命啊
 
目前正在用ADO开发,能不能用代码简化你问题,帮你测试一下。
 
把你改动的代码写出来吧。
 
我想改动的代码应该不是问题,我仅仅是将ADOQuery的一个字段名加了两个字,由"交费"改为
"交费状态",其它没有任何改变。

现在我还发现我的任何程序中使用ADOQuery时都出现了这个现象,即不管你的数据定义的是
varchar还是char,数据库端都将参数类型默认成了char,而其它int,date等类型的字段查
询时没有这种现象发生。

有什么环境的设置对这种现象有影响吗???
 
我好象也碰到过这样的问题,这是我用ado连access数据库时碰到的这个问题,只要是
模糊查询就什么记录都没有,但是我直接在access中使用却很正常,但是我如果连的是
sqlserver数据库的话就没有什么问题
 
问ydf:你最后是怎么解决的???
 
还是重装Delphi吧,这可能是最可行的办法了
 
这个问题我也遇到过,是ADO的BUG,查询时用Param传参数就有这个问题,但直接写SQL语句
不用Param就好了。你可以试一下。
 
我重装了delphi,原来的程序可以用了,但是新做的程序中还是有类似的现象出现
直接写SQL语言又太麻烦,是ADO的BUG还是DELPHI的BUG,有没有补丁下载???
 
建议不使用AdoQuery,感觉Bug非常多
使用AdoDataSet与AdoCommand吧
 
改用AdoDataSet和AdoCommand也有一样的毛病
 
那你不使用静态的查询子段,
在运行时生成SQL试试
 
难道就没有解决这个参数调用的错误吗,我好痛苦啊

to Jobs:运行时生成SQL,要写那么多的撇号也是瞒费神的
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部