不知问题出在那里,显示'access violation at adress 004df84 in module 'logop.exe'错误,错误在  fieldbyname('cname').AsString:=currnode.Text;处,现在没有分,但可另贴给高分;请大家指点一二,现在为这事特急!!!!!!procedure tformain.adddatatodb(currnode,fathernode:ttreenode);
var
mylabel:tlabel;
ald:integer;
begin
if not assigned(fathernode) then
 ald:=0
 else
 if not assigned(fathernode.data) then
 ald:=0
 else
 ald:=strtoint(tlabel(fathernode.data).Caption);
 with datamodule1.adogroup do
 begin
 close;
 sql.Clear;
 sql.Add('select * from addgr');
 open;
 append;
 fieldbyname('fatherid').AsString:=inttostr(ald);
 fieldbyname('cname').AsString:=currnode.Text;     //在这里出错,编译不过
 post;
 mylabel:=tlabel.Create(self);
 mylabel.Visible:=false;
 mylabel.Caption:=fieldbyname('autoid').AsString;
 currnode.Data:=mylabel;
 end;
 end;

解决方案 »

  1.   

    cname是什么类型的字段,
    将currnode.Text缩短,或先用一个string试试.
      

  2.   

    将currnode.Text先改成'1234'试试是不通过编译,如果行,证明是currnode.Text出了问题
      

  3.   

    另一段有关联的代码为,也过不去,刚才忘了取消调用,调用了也不行,但错误出现在:mynode.selected:=true;点上,和前面的错误一样,
    procedure Tformain.N44Click(Sender: TObject);
    var
    strname:string;
    mynode:ttreenode;
    begin
    strname:=inputbox('群组添加','请输入群组名:','');
    strname:=trim(strname);
    if strname='' then
    exit;
    formain.TreeView1.Items.AddChild(formain.TreeView1.Selected,strname);
    adddatatodb(mynode,formain.TreeView1.Selected);
    mynode.selected:=true;        //这里有错误了
    messagebox(self.Handle,'组添加成功','添加提示',mb_ok or mb_iconinformation);
    end;