Self.Query1.Close;
Self.Query1.SQL.Clear;
Self.Query1.SQL.Add('select max(serial) as mx from '+tablename);
Self.Query1.Open;maxserial:=Self.Query1.FieldByName('mx').AsInteger;为什么 Query1 Field mx not found

解决方案 »

  1.   

    'select max(serial) as mx from '+tablename //这里的mx是做为一个表吧?maxserial:=Self.Query1.FieldByName('mx').AsInteger; //这里的mx相当于一个字段
      

  2.   

    上面查询把as mx去掉.
    改为这个试试: maxserial:=Self.Query1.fields[0].AsInteger;
      

  3.   

    代码没有问题,请检查:
    1,变量tablename的值是否与mx相同
    2,设计期有没有为query1设置字段等参数,有的话把它去掉
    3,你用的是什么数据库
      

  4.   

    maxserial:=Self.Query1.fields[0].AsInteger;这样做了为什么maxserial总为0呢
      

  5.   


    Self.Query1.Close;
    Self.Query1.SQL.Clear;
    Self.Query1.SQL.Add('select max(serial)  mx from '+tablename);//去掉 as
    Self.Query1.Open;maxserial:=Self.Query1.FieldByName('mx').AsInteger;//确定mx是表里的表项吗?容易忽视
      

  6.   

    如果有结果用field[0]也是没问题的吧