对了,这个问题我也问过,比例想取得某个表中一列的最大值,
在PB中很容易做到:select 变量1=Max(col_1)
                 from table1
但在DELPHI中不知可否直接使用Sql语句,怎样做才最简单。
关注!

解决方案 »

  1.   

    可以呀!比如:
    Query1.Close;
    Query1.SQL.Text := 'SELECT * FROM Table1';
    Query1.Open;//执行用
    Query1.Close;
    Query1.SQL.Text := 'DELETE FROM Table1';
    Query1.ExecSQL;
      

  2.   

    query.sql.add('select 变量1=Max(col_1)
                     from table1')
    query.paratmers[0].value is your need
      

  3.   

    可以呀!比如:
    Query1.Close;
    Query1.SQL.Text := 'SELECT * FROM Table1';
    Query1.Open;//执行用
    Query1.Close;
    Query1.SQL.Text := 'DELETE FROM Table1';
    Query1.ExecSQL;
      

  4.   

    得用query控件!
    with query1 do
      close;
      sql.clear;
      sql.add(sql语句);
      open;
    end;
      

  5.   

    可以 Query.Text:='select * fom tabel1'
        Query.Open
      

  6.   

    当然可以了,用Query或ADOQuery就可以
    举个例子
    with query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select youvalue = Max(youfield) ');
      SQL.Add('  From table1                   ');
      SQL.Add(' Where 条件                     ');
      Prepare;
      ExecSQL;
      变量 := FieldByName('youvalue').Value; 
    end;
      

  7.   

    将SQL语句写到QUERY控件的sql  属性中
      

  8.   

    使用Tquery或Tadoquery控件:
      Query1.close;
      query1.sql.clear;
      query1.sql.add('select 变量1=Max(col_1)
                     from table1 ');
      prepared;
      open;
      

  9.   

    query.sql.add('select 变量1=Max(col_1)
                     from table1')
    象上面这样写好象提示变量1的地方有错啊
      

  10.   

    var
    s:string;
    query.sql.add('select max(col_l) from table')
    query.prepare;
    query.open;
    s:=query.fields(0).asstring
    就可以了
      

  11.   

    delphi不支持嵌入式SQL,(PB特有的),用楼上各位所说的好了!
      

  12.   

    把SQL语句单独写出来。例如下:
    var
      strSQL : string;
    begin
      with adoqry1 do
      begin
        Close;
        SQL.Clear;
        strSQL := 'SELECT  变量1=MAX(col_1) FROM Table1';
        SQL.Add(strSQL);
        Open;
      end;
    end;这样做的好处是可以直接监视strSQL.(用Ctrl + F7).
      

  13.   

    我使用了两个控件:ADOConnection1,设置好了ConnectionString,DefaultDataBase.ADOQuery里设置好connection。其它代码如下:
    var
      strInputID,strInputPassWord,strGetPass: string;
    begin
      strInputID := EditID.Text;
      strInputPassWord := EditPassWord.Text;
      With ADOQuery1 do
      begin
        close;
        sql.clear;
        sql.add('SELECT password ');
        sql.add('FROM users ');
        sql.add('WHERE id = ''' + strInputID + '''');
        Prepared;
        ExecSql;
      end;
      strGetPass := ADOQuery1.FieldValues['password'].valuse;
      if strGetPass = strInputPassword then
        ShowMessage('PassWord is right.')
      else
        ShowMessage('PassWord is wrong.');
    怎么运行的时候,提示field 'Password'没有找到?如果对ADOQuery1.Tstring赋初值,然后ADOQuery1.active设置为真,一运行就出现
    access violation at address ~~~ in modules 'msado15.dll',write of address ~~~.
    到底是怎么回事?折磨我一天了。