那是提示内存错误.你用的什么数据库?ACCESS?

解决方案 »

  1.   

    是delphi自带的paradox7,delphi是5.0
      

  2.   

    这种错误有很多种可能,比如没有及时关闭Table,在一个table打开的时候,另一个table或query对同一个数据表的数据进行操作就会出错!如果不是一个数据表不会有错的!
      

  3.   

    两个table引用同一个数据表的数据好像不会出现以上的错误信息。
      

  4.   

    会不会是你自已没设置好DB控件?
    多找找自己的原因吧,我觉得DELPHI的数据库编程还是很好用的
      

  5.   

    我发现了这个东西在做怪:
    我用数据库存储了部门名称,用另一个数据库存储了公司员工,现在我要在treeview中加入第层为公司部门,第二次为公司员工的树形结构显示!在别一边我用了dbgrid来显示当在treeview中单击部门某职工时,显示相应的职工情况。
    其treeview中我加入了代码为:
    catnode,child,child1:ttreenode;
      bm:string;
    begin
      catnode:=treeview1.Items.AddFirst(nil,'全公司员工名单');
      catnode.ImageIndex:=1;
      catnode.Selectedindex:=1;
      table1.First;
      while not table1.Eof do
      begin
      child:=treeview1.Items.AddChild(treeview1.items.GetFirstNode,table1.Fields[1].Text);
        child.ImageIndex:=2;
        child.Selectedindex:=2;
        bm:=table1.Fields[0].text;
        table2.first;
        while not table2.eof do
        begin
        if table2.Fields[0].text=bm then
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
        child1.ImageIndex:=0;
        child1.Selectedindex:=0;
        table2.Next;
        end;
      table1.Next;
      end;
    end;
    你们看看,上面的程序那里有问题?我将上面的代码删除就没有出现错误提示了。
      

  6.   

    catnode,child,child1:ttreenode;
      bm:string;
    begin
      catnode:=treeview1.Items.AddFirst(nil,'全公司员工名单');
      catnode.ImageIndex:=1;
      catnode.Selectedindex:=1;
      table1.open;
      table1.First;
      while not table1.Eof do
      begin
      child:=treeview1.Items.AddChild(treeview1.items.GetFirstNode,table1.Fields[1].Text);
        child.ImageIndex:=2;
        child.Selectedindex:=2;
        bm:=table1.Fields[0].text;
        table2.open;
        table2.first;
        while not table2.eof do
        begin
        if table2.Fields[0].text=bm then
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
        child1.ImageIndex:=0;
        child1.Selectedindex:=0;
        table2.Next;
        end;
      table1.Next;
      end;
      table1.close;
      table2.close;
    end;
    再试一下!
      

  7.   

    我终于查出了一个问题,就是在child1的显示图形时出错,修改为:
    if table2.Fields[0].text=bm then
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
       begin
        child1.ImageIndex:=0;
        child1.Selectedindex:=0;
       end;
        table2.Next
    后就没有错误了,不知为什么,是不是delphi的bug?
      

  8.   

    child1可能为nil!如果对它赋值就会有错!
      

  9.   

    最好这样:
    if table2.Fields[0].text=bm then
      begin
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
        child1.ImageIndex:=0;
        child1.Selectedindex:=0;
      end;
        table2.Next
      

  10.   

    按逻辑我的程序没有错呀? 哥们,不是吧,按你原来的写法是这样的
    if table2.Fields[0].text=bm then
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
    child1.ImageIndex:=0;
    child1.Selectedindex:=0;
    逻辑是 如果相等那么child1就赋值,然后不管什么情况,child1.imageindex := 0;
    child1.SelectedIndex := 0;
    这样的话,如果table2.Fields[0].text和bm不相等就不执行child1:= TreeView.......
    直接给child1.ImageIndex和 SelectedIndex赋值,给空指针赋值,嘿嘿,不错才怪。
    以后遇到类似的出错信息,十之八九是空指针操作。
    我从delphi1用到delphi5,只有最近的ADO的eof和bof错误是Delphi的(打补丁后就好了)
    其他的错误都是我自己不小心造成的,没有delphi什么事。
        
      

  11.   

    我觉得delphi做数据库就是比较难,不过慢慢来会找到原因的.