这段代码有问题吗?(50分)

  • 主题发起人 主题发起人 webease
  • 开始时间 开始时间
W

webease

Unregistered / Unconfirmed
GUEST, unregistred user!
想往DBComboBox的items中动态加入表中的某一项字段,可总出错。
Access violation at address 0049b709 in module,read of address fffffffff

with DataMast do
Table_Ghdw.open;
while not Table_Ghdw.Eof do
begin
FrmJhlr.ComboBoxGhdw.items.clear;
FrmJhlr.ComboBoxGhdw.Items.Add(Table_Ghdw.FieldByName('name').AsString);
Table_Ghdw.Next;
end;
 
//应该是这样的吧
with DataMast do
begin
Table_Ghdw.open;
FrmJhlr.ComboBoxGhdw.items.clear;
while not Table_Ghdw.Eof do
begin
FrmJhlr.ComboBoxGhdw.Items.Add(Table_Ghdw.FieldByName('name').AsString);
Table_Ghdw.Next;
end;
end;
你最好在跟踪一下,看看到底在那出问题
 
你把Items.Clear放在了while里面不就是每次循环都要清理一次呀
一定要放在外面才能保证不会清除!
同意Hubdog,是要跟踪一下看看你的程序是哪一句出错了,然后再找病因
 
with DataMast do
begin
Table_Ghdw.open;
Table_Ghdw.first;/你忘这一句
FrmJhlr.ComboBoxGhdw.items.clear;
while not Table_Ghdw.Eof do
begin
FrmJhlr.ComboBoxGhdw.Items.Add(Table_Ghdw.FieldByName('name').AsString);
Table_Ghdw.Next;
end;
end;
 
with DataMast dobegin
Table_Ghdw.open;
FrmJhlr.ComboBoxGhdw.items.clear;
while not Table_Ghdw.Eof do
begin
FrmJhlr.ComboBoxGhdw.Items.Add(Table_Ghdw.FieldByName'name').AsString);
Table_Ghdw.Next;
end;end;
对于error:
Access violation at address 0049b709 in module,read of address fffffffff
可能是由于系统的原因,我在作数据库时也碰到过这样的问题,一般,重起机器即可。
 
是驱动程序的问题,将驱动程序重新装一次就可以了
 
问题不在代码,换了个地方就好了,
也许和DBComboBox的DateSourse连接的表未打开有关吧。//clear items 应
放循环外面才好:)不好意思...
 
我在代码就是机子有问题。最好重装把补丁全部上。那行代码虽然不好。但还是会被delphi 编译通过的。知识结果不同而已。只有一个名字被加上:)
 
谢谢各位
 
讨论结束了
 
后退
顶部