请教各位高手,ADOQuery的修改语句格式是怎样的?
比如有一个ADOQuery4组件,要实现的功能是:将ADOQuery2组件中当前记录的属性‘余额’减1.
我写的是这样的:
ADOQuery4.SQL.Text:='update Course set 余额=余额-1 where 课程号=ADOQuery2.FieldByName(''课程号'').AsString';
不能通过编译。
1.请问正确的应该怎么写?
2.请问QuotedStr的正确用法是怎样的?它返回的是什么类型?String吗?
万分感谢

解决方案 »

  1.   


    ADOQuery4.SQL.Text:=Format(''update Course set 余额=余额-1 where 课程号=%s',
    [QuotedStr(ADOQuery2.FieldByName('课程号').AsString)]);QuotedStr返回的是String!
      

  2.   


    ADOQuery4.SQL.Text:=Format('update Course set 余额=余额-1 where 课程号=%s',
    [QuotedStr(ADOQuery2.FieldByName('课程号').AsString)]);
      

  3.   

    多谢解答,功能已经实现,不过有一个小问题:结果不能实时显示,只有在程序下次运行的时候才能看到。
    请问有什么办法能让结果实时显示吗?
    我试着在选课按钮下面添加:
      ADOQuery3.Close;
      ADOQuery3.Open;
    但是报错:CommandText不返回结果集。 
      

  4.   

    update   然后ExecSql
      

  5.   

    多谢解答,问题已解决,写了一个函数Reopen用于更新DBGrid1和DBGrid2的信息,每次执行完操作调用Ropen即可实现实时显示。PS:现在想将某学生所选课程的总学分计算出来并显示在一个编辑框中,请问要怎么实现?
      

  6.   


    多谢解答,请问具体格式是怎样的?小弟菜鸟,对各种组件值的类型是否匹配没有把握。另外需要用到DBEdit组件吗?还是普通的Edit就行?
      

  7.   

    看到书上有例子,格式如下:
    edit1.Text := database.ADO_GZBWL.fieldbyname('gzbw_id').AsString;
    这是将某个属性的值显示在编辑框中。
    但我现在想实现的是把某学生所选课程的学分之和显示在编辑框中,可这个和并不是某个表的属性啊,请问这要怎么做?
      

  8.   


    { 直接修改 }
    with ADOQuery4 do
    begin
      SQL.Text:=Format(''update Course set 余额=余额-1 where 课程号=%s',
        [QuotedStr(ADOQuery2.FieldByName('课程号').AsString)]);
      ExecSql;{ 修改后提交!}
    with ADOQuery2 do
      begin
        if not Active then
        begin
          raise Exception.Create('数据集没有打开!'); 
          Exit;
        end;
        if Locate('课程号', '填写你要修改的课程号', []) then
        begin
          Edit;
          FieldByName('余额').AsFloat := FieldByName('余额').AsFloat - 1;
          Post;
        end;
      end;
      

  9.   

    想将某学生所选课程的总学分计算出来并显示在一个编辑框中,请问要怎么实现?看到书上有例子,格式如下:
    edit1.Text := database.ADO_GZBWL.fieldbyname('gzbw_id').AsString;
    这是将某个属性的值显示在编辑框中。
    但我现在想实现的是把某学生所选课程的学分之和显示在编辑框中,可这个和并不是某个表的属性啊,请问这要怎么做?
      

  10.   

    想将某学生所选课程的总学分计算出来并显示在一个编辑框中,请问要怎么实现?看到书上有例子,格式如下:
    edit1.Text := database.ADO_GZBWL.fieldbyname('gzbw_id').AsString;
    这是将某个属性的值显示在编辑框中。
    但我现在想实现的是把某学生所选课程的学分之和显示在编辑框中,可这个和并不是某个表的属性啊,请问这要怎么做?
      

  11.   

    想将某学生所选课程的总学分计算出来并显示在一个编辑框中,请问要怎么实现?看到书上有例子,格式如下:
    edit1.Text := database.ADO_GZBWL.fieldbyname('gzbw_id').AsString;
    这是将某个属性的值显示在编辑框中。
    但我现在想实现的是把某学生所选课程的学分之和显示在编辑框中,可这个和并不是某个表的属性啊,请问这要怎么做?