收录日期:2019/03/26 02:58:38 时间:2016/05/31 07:15:26 标签:数据库相关
dbgrid 远程取得了数据到本地显示出来了,远程服务器端数据库新插入了一条新记录,本地查询某条记录如果在本地没有找到,这时再到远程去取一条记录到本地(不想用刷新的方式重新取远程所有数据,因为数据量非常大),我想应当可以在本地DBGRID中直接insert一条重远程取出的记录。
  
    我想这应当是一个非常简单的问题,因为是改别人的程序,第一次用delphi,搞不清从那里下手,只是知道思路,请教一下,大家记得写详细点,谢谢
补充:本地显示的DBGRID是只读的
Refresh
to:anbangs(大邦)
不想用刷新的方式重新取远程所有数据,因为数据量非常大
关注一下
不刷新应该没办法吧
看你是用什么方法取数据的,如果是客户端脱机浏览的话,那肯定要重新取数据拉。
不可能吧,连在 DBGrid 直接多放一行记录都不行啊?
DbGrid是数据绑定的,不能直接添加记录,如果用的是StringGrid的话就行
不过如果你继承一下再改改不知道行不行
不知道,帮你up一下!
你本地把数据集保存一下,你需要对olddataset操作,
我用的是DBGrid 、 TADOQuery、 TDataSource
根据我的编程经验,绝对可以实现的,只是我对Delphi不太了解
如果本地显示的DBGRID是只读的话,那么可以查询取回本地没有的记录,然后自己写代码对本地的数据集进行插入那些记录(此时数据集的提交方式应该为批提交,那么这时候对数据集的操作都只是在本地内存中,并为真正写入数据库)。
注意这个时候的数据集是只读的,不能写数据回数据库,要不可能会出错。

没有实验过,只是自己想应该这样,不对的请包涵啊~~
要用刷新的方式重新取远程所有数据.
不然没有什么好办法。
我知道的方法也是重新取
所有只能up咯
你刷新
adoquery1.edit;
adoquery1.updaterecoud;
adoquery1.close;
adoquery1.open;
我的程序大致是这样的:第一次远程登陆连上服务器时,对其中的一个大表全部下载到本地显示在DBGrid 中, 每隔几秒钟调用远程数据库存储过程可以取到一条这个表中有状况(细节就不用说了)的数据id,然后根据这个id在本地查找显示出来,现在如果有新增加的数据的话,就不能在本地查到,
我现在用的是刷新的方法,基本上是重连重新取数据,虽然可以用了,但是超慢,还是继续寻找下方法:
我的想法就是,考虑这种情况: DBGrid 可写入, 在DBGrid 中插入或者追加一行,当还没有采用update方法进行更新时,数据库并真正插入数据,但DBGrid 却可以显示这条新增加的数据。
那么我就可以采用这种假相,当服务端有新数据增加时,在本地没有查到,则远程只取这一条数据,作为一种假相插入到DBGrid 中,因为我只要显示即可。
由于Delphi从未接触,手头没有一本参考书,网上一时找资料也难,Delphi高手评下这种方法是否可取,给点示例代码。
到服务器上查到那一条数据,将值赋给变量
再由变量新增到本地数据库中
还真是不懂...
在第一次下载远程数据的同时在库中建一个临时表,把下载的数据全部insert到临时表,以后每隔几秒就把临时表中的数据和数据库的记录进行比较,把不同的记录增加到远程表中。你可能要用到DOQUery--->LockType---->ltBatchOptimistic
我想如查用ADO可以设置每页只显示20行,然后查询时通过排序就可以总是第一页就行了,这样取数据据应该会快些
你说的好象不太好实现,不过我觉得你还是尽量不要把整个表都取过来,还是应该取少量,这样的好处是速度,既使你想refresh的话,更新起来比较快
应该向本地的Dataset中插入记录!
考虑换一种现实数据的方法,数据量那么大显示在本地是不太好的

我想找一个网站,能提供短信服务(或者短信软件) [小调查]说下自己网龄! 帮我解析一下这段代码 菜鸟问题 : VS 中 main() 函数的执行! 没有监听器的问题 急求 SharePoint 2003 ? 求关于PB的简要介绍 怎样让dbcombobox读出某字段的全部内容 奇怪问题,不知道在这是否合适 我们为您提供专业优惠的JSP虚拟主机,国内价格最低! C++/MFC的数据库编程用DAO连接时有问题了。。。。。。。。。。。 关于TransparentBlt函数的问题 高分请教 如何以WBS树状形式显示数据库的记录 CPropertySheet 页中,能不能添加下拉菜单? 如何添加? 如何创建一个没有边框的 CPropertySheet 页? 安装好一台LINUX系统后,如何实现系统复制? 为什么ipconfig和ping都不能用了!!(50分) 关于linux主机的回车转换问题(非常着急) 简单问题,select * into t_2 from t_1 与insert into t_2 select * from t_1 这两种写法的区别? 有关安装2005后出现的问题 框架能实现 不能单独打开某个子框架的功能吗。 struts问题! 哪里有MXCHART.CAB下载,有的请给发一份 TSD区中的变量和线程函数内的局部变量有什么不同? 认为如果CSDN增加征婚专栏,访问量会大大增加? c++ 中函数是绝对不可以返回局部变量的,c#中难道可以今天见了好几个这样的。 Delphi组件(dll)怎么不能在VB里用呀? 如果一个函数从没被调用过在目标程序里会有这个函数的目标程序吗? 怎么提交faq? 混乱了,大侠带我出迷宫! 本网页提供众多原创测试资料,详见本贴内容: