想写个函数,对当前记录的某个字段赋值情况是这样的,我有一张大表,字段很多,其中一些是做标记用的,用0,1,2...来标识一些状态,供查询使用.由于某些原因,我使用了多个数据集(ADOQuery)select表中的不同字段分别通过多个DATESOURCE显示在各自对应的DBGrid上.
但都包括这些标记用的字段,我希望写一个方法,来对当前的DBGrid中选中的记录的标记字段赋值,供事件响应是调用.请问:我该怎样写好呢? 我现在的一个思路是:
    Function SetFlag(OB:TObject;flagname,fvalue:string);
     begin
      with TADOQuery(OB) do
          begin
              //问题1:这里需要写select吗?怎样写?调用该方法的时候,已经用select来显示记录了. 
              fieldvalue[flagname] := fvalue;
          end;
     end;                            //问题2:怎样才能保证修改的时我在dbgrid里点中的记录呢?
            //问题3:这样的思路可以吗?      //谢谢

解决方案 »

  1.   

    var
      str_sql:string;
    begin
      str_sql:='select '+flagname+' from yourtablename where '+你的条件;end;
    --------------------------------------------------------------------
    看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
    扬乱舞香。捏花一笑,海不扬波断肠心!
    广告:http://delphicode.yeah.net
      

  2.   

    可以写一个鼠标事件,在事件中,可以这样写
    var 
     str_sql:string;
     begin
       str_sql:=self.DBGrid.fields[你的字段号].asstring;
    end;