起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 172|回复: 3

急急急!!!!!!!**

[复制链接]
发表于 2007-4-17 09:48:34 | 显示全部楼层 |阅读模式
运行设备台帐查询的时候发生异常:Access violation at address 01C9505E in module ' CLRun.bpl'. Read of address 00000019
类型:EAccessViolation.
请问高手这个异常是什么意思怎么解决,急急急!!!!!!!
回复

使用道具 举报

发表于 2007-4-17 10:54:22 | 显示全部楼层
这个就不好说了,只能一点一点排除
1、是在设计环境还是运行环境,
2、是功能打开时报错,还是点击某个按钮报错,还是关闭功能时保存
3、该功能是否有代码,如果屏蔽所有代码是否保存
4、在设计环境设置断点跟踪一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-18 11:24:21 | 显示全部楼层
是在运行时出的错,首次运行没错,第二次,第三次运行就出错了。
现在原来的错误没有了,又出现List index out of bounds (-1)这种错误了,
运行后就弹出对话框,显示List index out of bounds (-1),停止运行后,
稍微一动光标就会弹出这种对话框,不知道怎么解决!!!
procedure TMainForm.BizFormCreate(Sender: TObject);
  var
NewTreeNode : TTreeNode;
lBizField: TBizField;
  lStream: TMemoryStream;
  KeyField:String;
   DisplayField:String;
   tabelname:String;
   datatype:String;
begin
  lBizField := TBizDataSet(DataSetBroker1.DataSet).FindBizField('sid');
  if lBizField <> nil then
  begin
     lBizField.LookupDef.Kind := TLookupKind.lkEnumValues;

   newtreenode:=TreeView1.Items.add(nil,'序号');
    KeyField:=lBizField.LookupDef.KeyField;
   DisplayField:=lBizField.LookupDef.DisplayField;
   lStream := TMemoryStream.Create;
    try
      DataSetBroker1.DataSet.Open;
      DataSetBroker1.DataSet.SaveToStream(lStream, TDataPacketFormat.dfXML);
      lStream.Position := 0;
      lBizField.LookupDef.Values.LoadFromStream(lStream);
      TBizDataSet(DataSetBroker1.DataSet).LayoutChange;
    finally
      lStream.Free;
          if(DataSetBroker1.DataSet.FieldByName('sid')<>'')then
        begin
          Treeview1.Items.AddChild(newtreenode,lBizField.LookupDef.KeyField);
          Treeview1.Items.AddChild(newtreenode,lBizField.LookupDef.DisplayField);
          Treeview1.Items.AddChild(newtreenode,lBizField.URL);   //lBizField.URL
          Treeview1.Items.AddChild(newtreenode,lBizField.FullID);  // lBizField.FullID
         Treeview1.Items.AddChild(newtreenode,tsqldataset(datasetbroker1.DataSet).BizFields[0].Origin.BizTableDef.DisplayName);
     Treeview1.Items.AddChild(newtreenode,tbizdataset(datasetbroker1.DataSet).BizFields('sid').GetType.ToString());
       if datasetbroker1.DataSet.Fields[0].DataType=business.Data.TFieldType.ftString then

            datatype:='String';
            edit1.Text:=datatype;
         
        end;
    end;
  end
  else
    //FindBizFieldError;
  end;

end.这是代码
回复 支持 反对

使用道具 举报

发表于 2007-4-18 13:40:27 | 显示全部楼层
把代码屏蔽,一点一点开放自己跟踪一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-4 18:04 , Processed in 0.035247 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表