下面这段程序有什么错误吗?我用F7调试,执行到这个end的时候就有错误!提示为:invalid variant operation!难道在哪里还要设置什么东西吗?
//程序如下
var ii:integer;
begin
     ii:=fcdm.ADOQry_flow.RecNo;
     if ii<0 then
         fcdm.ADOQry_flowno.Value:=1;
        fcdm.ADOQry_flowno.value:=ii+1;
end;运行会出现:raise EAccessviolation at address **** in module 'rtl60.bpl'这个是关于什么的错误?

解决方案 »

  1.   

    var ii:integer;
    begin
         ii:=fcdm.ADOQry_flow.RecNo;
         if ii<0 then
             fcdm.ADOQry_flowno.Value:=1;
         else
            fcdm.ADOQry_flowno.value:=ii+1;
    end;
      

  2.   

    你的ADOQry_flowno是TADOQuery吗是的话没这个.Value这个属性var ii:integer;
    begin
         ii:=fcdm.ADOQry_flow.RecNo;
         if ii<0 then
             fcdm.ADOQry_flowno.Fields[0].Value :=1
         else
            fcdm.ADOQry_flowno.Fields[0].value:=ii+1;
    end;
      

  3.   

    fcdm是一个数据连接的data module,而ADOQry_flowno是ADOQry_flow中的一个计算字段
      

  4.   

    var ii:integer;
    begin
         ii:=fcdm.ADOQry_flow.RecNo;
         if ii<0 then
        begin
             fcdm.ADOQry_flowno.Value:=1;
            fcdm.ADOQry_flowno.value:=ii+1;
            end;
    end;
      

  5.   

    还是有invalid variant operation!错误!
      

  6.   

    存取非法地址啊。fcdm.ADOQry_flowno.value:=ii+1;
    这里面的对象都创建了吗?如果没有,
    就重新启动DELPHI,
    再调试!!!!
      

  7.   

    我单步跟踪调试,当运行到dmfc这个窗体的时候,就出错了。这个dmfc是一些数据库操作的控件如ADOQury,connection等,还有就是有个计算字段,没有其他的东西
      

  8.   

    代码如下:
    unit dmfc;interfaceuses
      SysUtils, Classes, DB, DBTables, ADODB;type
      Tfcdm = class(TDataModule)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        ADOTable1: TADOTable;
        ADODataSet1: TADODataSet;
        DataSource1: TDataSource;
        ADOTable1USERNAME: TWideStringField;
        ADOTable1PASSWD: TWideStringField;
        ADOTable1OPER_NAME: TWideStringField;
        ADOTable1OPER_ID: TWideStringField;
        ADOTable1OPER_RANK: TIntegerField;
        ADOTable1OPER_DUTY: TWideStringField;
        ADOTable1EDU_LEVEL: TWideStringField;
        ADOTable1AREA: TWideStringField;
        ADOTable1WORKGROUP: TWideStringField;
        DataSource2: TDataSource;
        DtSc_worktype: TDataSource;
        ADOQuery2: TADOQuery;
        ADOQuery3: TADOQuery;
        DtSc_flow: TDataSource;
        ADOQry_flow: TADOQuery;
        ADOQry_flowFLOW_NAME: TWideStringField;
        ADOQry_flowno: TIntegerField;
        ADOQry_flowWFLOW_ID: TWideStringField;
        ADOStoredProc_flow: TADOStoredProc;
        ADOTbl_devlp: TADOTable;
        ADOTable2: TADOTable;
        DataSrc_card: TDataSource;
        ADOTbl_card: TADOTable;
        DataSrc_area: TDataSource;
        ADOTbl_area: TADOTable;
        ADOQry_empestate: TADOQuery;
        DataSrc_empestate: TDataSource;
        ADOTbl_oper_info: TADOTable;
        DataSrc_oper_info: TDataSource;
        ADOStdProc_clear: TADOStoredProc;
        ADOConnection2: TADOConnection;
        ADOStPro_operrank: TADOStoredProc;
        ADOQuery4: TADOQuery;
        procedure ADOQry_flowCalcFields(DataSet: TDataSet);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      fcdm: Tfcdm;implementation//uses flowset;{$R *.dfm}procedure Tfcdm.ADOQry_flowCalcFields(DataSet: TDataSet);var
    ii:integer;begin         fcdm.ADOQry_flowno.AsInteger:=abs(fcdm.ADOQry_flow.RecNo);
    end;end.