zoukankan      html  css  js  c++  java
  • delphi DBGRID 刷新定位问题 [问题点数:0分]

    我程序是 adoquery+datasource+dbgrid 做的
    我有一个窗体:有四个按钮。分别是新建,修改,删除,刷新。

    新建第一条记录,dbgrid显示一条记录,新建第二条记录。DBGRID总共显示第一,第二条记录。不需要把以前记录显示出来。。

    修改时候,,,当修改当前记录完成后DBGRID回当前修改行。


    删除一条记录。。。定位到删除记录下条记录。

    ADOQuery1.Close;
    ADOQuery1.SQL.Text:='select * from 表名 where (ID > '
    +QuotedStr('数据库中ID的最大号'
    +') and (user = '
    +QuotedStr('操作者名'
    ')';
    ADOQuery1.Open;

    假定你的数据表中有个唯一的ID(自增)字段、有个记录操作者的user字段,新增记录时的查询语句这样写:

    ADOQuery1.Close;
    ADOQuery1.SQL.Text:='select * from 表名 where (ID > '
    +QuotedStr('数据库中ID的最大号'
    +') and (user = '
    +QuotedStr('操作者名'
    ')';
    ADOQuery1.Open;

    就可以达到表格中总是显示新键入的记录了。

    编辑记录时,在你的语句前后加入下面两句即可定位到被编辑的记录上:

    var p:pointer;
    begin
    p:=ADOQuery1.GetBookmark;//做个标签
    //记录修改和提交的语句...
    ADOQuery1.GotoBookmark(p);//记录定位到标签
    end;

    删除记录时,系统自动将记录定位到被删除记录的上一条,所以,删除记录后,只要执行ADOQuery1.Next;就能定位到被删记录的下一条(假如有的话)

    在使用Bookmark的时候,最好用try except 屏蔽错误。 还要FreeBookmark

  • 相关阅读:
    重学微积分
    重学微积分
    重学微积分
    python打包成exe过程中遇到的问题
    日常笔记-VS
    Python项目案例开发从入门到实战-1.5Python文件的使用
    Python项目案例开发从入门到实战-1.4Python图形界面设计
    Python项目案例开发从入门到实战-1.3 Python面向对象设计
    Python项目案例开发从入门到实战-1.2 Python语法基础
    剑指offer题目汇总
  • 原文地址:https://www.cnblogs.com/jijm123/p/7458707.html
Copyright © 2011-2022 走看看