我要实现在后台UNIX中的INFORMIX数据库中提取操作员号的最大值,使其加1后再
赋值给EDIT.TEXT,源程序如下:
var num1,num2:integer;
AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  sqlstr:='select max(opernbr) into :num1 from operators';
  AdoQuery1.SQL.Add(sqlstr);
  AdoQuery1.Open;
  num2:=num1+1;
  Edit_Code.Text:=inttostr(num2);

  raised exception class EOLeException with message 'Parameter 对象不被正确定义,提供了不一致或不完整的信息。’

解决方案 »

  1.   

    var num1:integer;
    AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      sqlstr:='select max(opernbr) from operators';
      AdoQuery1.SQL.Add(sqlstr);
      AdoQuery1.Open;
      num1:=ADOQuery1.Fields[0].AsInteger+1;
      Edit_Code.Text:=inttostr(num1);
      

  2.   

    INFORMIX支持
    sqlstr:='select max(opernbr) into :num1 from operators';
    写法吗?
    还是用普通写法试试吧
      

  3.   

    你的写法没有问题,像oracle, informix这样牛*的数据库都可以那么做,关键是:num没有被定义为参数,要定义为in, out or in&out类型,具体的你可以用adoQuery.Parameters.Add(......)把它加进去,然后就可以取了,明白了吧,哈哈