Access violaton at address 004c1b4b in module 'wowrw1_p.exe',read of address 00000008
大家知道这是什么错误吗?
搞了一天也没搞好,
编译停留在 if adoquery1.fieldbyname('国家').AsString<>node1.Text then
这个语句上面。大家帮忙找找我把代码放出来,大侠帮我找找。
procedure TmainForm.FormCreate(Sender: TObject);
var i,j,k:integer;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from wowrw1');
open;
end;
adoquery1.Open;
adoquery1.first;
node2:=treeview1.Items.Add(node1,adoquery1.fieldbyname('国家').AsString);
node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);while not adoquery1.Eof do
begin
adoquery1.Next;
if adoquery1.fieldbyname('国家').AsString<>node1.Text then//错误停留在这里。
begin
for i:=0 to node1.Count-1 do
begin
if adoquery1.fieldbyname('省城').AsString<>node1.Item[i].Text then
begin
for j:=0 to node2.Count-1 do
begin
if adoquery1.fieldbyname('地区').AsString<>node1.Item[i].Item[j].Text then
begin
for k:=0 to node3.Count-1 do
begin
if adoquery1.fieldbyname('任务NPC').AsString<>node1.Item[i].Item[j].Item[k].Text then
begin
node2:=treeview1.Items.Add(node1,adoquery1.fieldbyname('国家').AsString);
node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);
end
else treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);
end;
end else node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
end;
end else node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
end;
end;
end;
end;
大家知道这是什么错误吗?
搞了一天也没搞好,
编译停留在 if adoquery1.fieldbyname('国家').AsString<>node1.Text then
这个语句上面。大家帮忙找找我把代码放出来,大侠帮我找找。
procedure TmainForm.FormCreate(Sender: TObject);
var i,j,k:integer;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from wowrw1');
open;
end;
adoquery1.Open;
adoquery1.first;
node2:=treeview1.Items.Add(node1,adoquery1.fieldbyname('国家').AsString);
node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);while not adoquery1.Eof do
begin
adoquery1.Next;
if adoquery1.fieldbyname('国家').AsString<>node1.Text then//错误停留在这里。
begin
for i:=0 to node1.Count-1 do
begin
if adoquery1.fieldbyname('省城').AsString<>node1.Item[i].Text then
begin
for j:=0 to node2.Count-1 do
begin
if adoquery1.fieldbyname('地区').AsString<>node1.Item[i].Item[j].Text then
begin
for k:=0 to node3.Count-1 do
begin
if adoquery1.fieldbyname('任务NPC').AsString<>node1.Item[i].Item[j].Item[k].Text then
begin
node2:=treeview1.Items.Add(node1,adoquery1.fieldbyname('国家').AsString);
node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);
end
else treeview1.Items.AddChildFirst(node4,adoquery1.fieldbyname('任务名称').AsString);
end;
end else node4:=treeview1.Items.AddChildFirst(node3,adoquery1.fieldbyname('地区').AsString);
end;
end else node3:=treeview1.Items.AddChildFirst(node2,adoquery1.fieldbyname('省城').AsString);
end;
end;
end;
end;
解决方案 »
- 怎么删除sqlserver数据库中的重复记录,一删除就提示,键列信息不足,如果删除将会影响多行,
- 如何将AutoCAD表格转换到Excel表格?
- 一个关于时间查询的问题
- WM_NCHITTEST消息中 怎么判断 是 点击(左键)还是 其他??
- 关于cxLookupComboBoxBh控件的问题
- 文件操作问题?急!
- dbgrid 怎么才能实现shift多选呢?
- 再问,关于jpg文件的显示?
- 求助!关于listbox组件
- 如何用query执行存储过程并获得其输出变量
- tstringlist的savetofile如何才能每次把数据追加(append)到文件?
- 请问如何固定DBGrid首列,当有横向滚动条滚动时,首列固定不动,其它列移动?谢谢!!
看一下node1有值没有?是否是null