1、我想在DBGrid表中完成“修改当前记录”、“删除当前记录”、“查询某一字段的值的记录”、“添加记录”在当前记录后!2、怎样获得ADOQuery的每一当前记录的字段的值?

解决方案 »

  1.   

    第一个没用过,第二个可以ADOQuery.FieldValues[字段名],字段什么类型返回什么类型
      

  2.   

    首先DBGRID显示的数据是特定数据集中的数据,所以要操作数据的话就要操作相应的数据集.
    假如你的数据集组件用的是ADOQUERY1.
    1、
    修改当前记录:修改前,ADOQUERY1.EDIT,然后修改相应的字段,ADOQUERY1.FIELDBYNAME('字段名').VALUE:=新值,修改完毕后,ADOQUERY1.POST;删除当前记录:ADOQUERY1.DELETE;查询某一字段的值的记录:ADOQUERY1.LOCATE('字段名','字段值',[]),如果返回TRUE表示找到,否则未找到.添加记录在当前记录后:
    adoquery1.insert,但是不一定就添加到当前记录后,具体跟你所用的数据库以及有没有主键和索引有关系
    2、怎样获得ADOQuery的每一当前记录的字段的值?
    用ADOQUERY.FIELDBYNAME('字段名').value就可以获得当前记录指定字段的值
      

  3.   

    第一个普通DbGrid都能实现
    第二个在AfterScroll中写事件
    edit1.text:=ADOQuery.FieldByName("name").asString;
      

  4.   

    加个CxGrid吧, Grd_MainDBTableView1.OptionsView.Nagitive:=True;
    就出来添加删除按钮列。
    CXgrid控件界面比较靓。
      

  5.   

    AfterScroll中写事件怎么写,比方说我先不更新数据库的内容(更新缓存中的内容)。等到最后确认才更新数据库。applyUpdates 和fetchall怎么用?
    请举例说明谢谢!