说详细点
用Delphi5.0 ,三层结构,其中sql语句在Oracle的SQL PLUS中运行的结果为:1,如不在datamodule1的组件CDS_Total中加入一个integer型的计算字段qq,则在Delphi中调试时报错‘field value 'qq'out of range ’   然后我在datamodule1的组件CDS_Total中加入一个integer型的计算字段qq,调试可通过了,可打印出的datamodule1.CDS_Total.FieldByName ('qq').asinteger值为0;天啊,我要的是“1”,可为什么不是1而是“0”呢??为什么会这样呢?请大侠施以援手!!源代码如下:
ssql3:='select count(*) as qq from tab_stafftrain where sta_id='''+EdtSta_id.Text+''' and cur_id='''+EdtCur_id.Text+''' ';
  //showmessage(ssql3);
      with datamodule1.CDS_Total do
          begin
              try
                 close;
                 commandtext:=ssql3;
                 open;
              except
                 showmessage('不能打開數據庫!');
              end;
      end;
     showmessage(inttostr(datamodule1.CDS_Total.FieldByName ('qq').asinteger));

解决方案 »

  1.   

    或见
    http://www.csdn.net/expert/topic/746/746749.xml?temp=.8480799
      

  2.   

    ssql3:='select count(*) as qq from tab_stafftrain where sta_id='''+EdtSta_id.Text+''' and cur_id='''+EdtCur_id.Text+''' ';
      //showmessage(ssql3);
          with datamodule1.CDS_Total do
              begin
                  try
                     close;
                     commandtext:=ssql3;
                     ShowMessage(ssql3); //先看看语句是不是你想要的
                     Memo1.Text := ssql3; //如果是,请把语句放到Oracle中执行在看看//Memo1随便放一个//调试完再删除即可
    //
                     open;
                  except
                     showmessage('不能打開數據庫!');
                  end;
          end;
      

  3.   

    SQL語句沒問題,Oracle中执行結果為;
            QQ
    ----------
             1
    問題在;
     datamodule1.CDS_Total.FieldByName ('qq').asinteger
    报错‘field value 'qq'out of range ’