关于dblookupcombobox(100分)

  • 主题发起人 主题发起人 zhangheaaa
  • 开始时间 开始时间
Z

zhangheaaa

Unregistered / Unconfirmed
GUEST, unregistred user!
我打算用一个dblookupcombobox 显示一张表里的一个字段的所有值。
中间层有一个query组件,sql=select name,no from table1,
客户端用一个clientdataset连接此query,
datasource1 连接 clientdataset,
dblookupcombobox的listsource为datasource1,
listfield为name( 姓名)
keyfield为 no(代号)
运行时dblookupocombobox将所有的姓名在下拉框中显示出来,
但选择其中某个姓名时,出现错误:
'constant is not correct type 4'
 
数据类型不对
 
name是varchar(20)
no是int
 
老兄,数据类型不对!
 
是数据类型的问题
 
究竟问题出在哪里?应该如何解决?
 
数据类型不对
 
中间层用Table来接dblookupcombobox试试,可能问题就解决了。
 
不会是query的问题,我用query就很好,没出现你说的情况.你可以用其它的表或者再新建个三层的projectgroup,试一试.如果还是有问题,可能是BDE的问题了.
 
有谁告诉我问题具体出在哪里?应该如何改正?
 
字段类型有错误或未指定。
我说的不是数据库中的字段类型,而是Delphi数据集中的字段类型有错误。比如:ftString,ftInteger等。
你仔细检查检查。
顺便问一下,程序中你用到filter了吗,若用了,你再看看它吧,设置的对否。

还有一种可能,Table1中有非法记录。比如:null
 
程序中未使用fileter,表中没有非法字段,
因为不使用三层结构,直接使用c/s结构,则没有问题,
我在设置dblookupcombobox的属性时,根本没有改变任何数据类型,
数据类型的错误究竟是什么地方的数据类型出错了?
 
在中间层加一个PROVIDER,让他的DATASET指向这个QUERY,再在客户端让CLIENTDATASET的PROVIDERNAME指向你在中间层加的那个PROVIDER,试一试
 
问题解决了,只要把keyfield设置成和listfield一样的字段就可以了。
 
多人接受答案了。
 
后退
顶部