请教大家一个关于ADOTable的数据库问题:
一个界面上有五个Panel,每个Panel上都有一组不同的控件,分别连接五个不同的表,每个表的字段不一样多。每个Panel上面有很多DBEdit,DBCheckBox等,分别连接到对应的表。在这个界面上,只有一个添加,一个保存,一个确定,所以只用了一个ADOTABLE来对应一个表,现在问题是,当ADOTABLE open 时就会弹出一个错误来,说某一个表的某一个Field 名称找不到,点了确定能进到这个界面里面,里面的值也是对的,记录也找出来了,但就是要弹这么个错误,
问题,我觉得是因为同一个ADOTABLE被子N个DB控件连接了,而不同的DB控件,又是连接不同的表的,这样,当打开ADOTABLE时,有个DB控件不是连接当前表的就会找不到相应的Field ,就弹出错误,而找到了的,肯定就不弹了,但现在也想不通的是,就弹一个,之后,其他的却不弹,按理说不止一个DB控件找不到相应的Field啊,应该要弹很多啊。不知道是哪里的问题,有朋友愿意帮我看看吗?
不知道我说明白了没有,麻烦大家了。先谢谢了。
一个界面上有五个Panel,每个Panel上都有一组不同的控件,分别连接五个不同的表,每个表的字段不一样多。每个Panel上面有很多DBEdit,DBCheckBox等,分别连接到对应的表。在这个界面上,只有一个添加,一个保存,一个确定,所以只用了一个ADOTABLE来对应一个表,现在问题是,当ADOTABLE open 时就会弹出一个错误来,说某一个表的某一个Field 名称找不到,点了确定能进到这个界面里面,里面的值也是对的,记录也找出来了,但就是要弹这么个错误,
问题,我觉得是因为同一个ADOTABLE被子N个DB控件连接了,而不同的DB控件,又是连接不同的表的,这样,当打开ADOTABLE时,有个DB控件不是连接当前表的就会找不到相应的Field ,就弹出错误,而找到了的,肯定就不弹了,但现在也想不通的是,就弹一个,之后,其他的却不弹,按理说不止一个DB控件找不到相应的Field啊,应该要弹很多啊。不知道是哪里的问题,有朋友愿意帮我看看吗?
不知道我说明白了没有,麻烦大家了。先谢谢了。
把那个弹出错误的字段的DATASOURCE设置为空后,昨天就试了,以为行的,但是不行,就弹出下一个字段的错误,一样的,但是那个字段是在那个表里存在的。TO zxf_feng yct0605 两位
项目必须要用一个ADOTABLE。没办法,不然,实现起来很麻烦啊。我想,一个ADOTABLE应该是可以解决的。
下面代码是我在打开ADOTABLE之前,把这个界面上的这两类用到DB的控件都设置为禁用了,但是进去,还是错误。就是当禁用了之后,ADOTABLE OPEN之时,不知是ADOTABLE感知访问DB控件,还是DB控件感知访问ADOTABLE,还是弹出一个相同的错误。实在是有点乱啊。郁闷,找不着问题的根点啊。for i:=0 to self.ComponentCount-1 do
begin
if (self.Components[i] is TDBEdit) then
(self.Components[i] as TDBEdit).Enabled := false;
if (self.Components[i] is TDBCheckBox) then
(self.Components[i] as TDBCheckBox).Enabled:=false;
end;
然后选择ADOTable.talbename
然后在打开ADOTable.active:=true;
这样做事因为数据表连接的时候是不能更换数据表的,否则就报错
更妥当的方法是用多个ADOTABLE,每个ADOTABLE 对应一个表.
这和你的ACTION,应该是一样的吧?