标题:老车再谈 CURSOR 表
只看楼主
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:29
专家分:4
注 册:2016-5-12
结帖率:50%
 问题点数:0 回复次数:0 
老车再谈 CURSOR 表
___2021年10月18日

记得2009年左右在广州时,看到梅子论坛的多位大师谈论CURSOR表是VFP升9.0的最大亮点,CURSOR表如何如何伟大。当时老车还没搞远程,只是用CURSOR表做个信息记录什么的,如果象现在认识到CURSOR表也如同基本DBF表在磁盘,甚至会认为它可有可无。记得当时也纳闷CURSOR表有不能保存、不能插行、不能PACK等那么多缺点,那些大师咋就认为它那么伟大呢?
2017年老车开始学用SQL,接触到了真正意义上的CURSOR表。群中的一位 梁老师 发来了下面代码,运行后老车觉得可能是生成了远程视图。后来群中“思明”大师又讲到远程视图是一种特殊的CURSOR表。由此老车开始对CURSOR表提高了认识。看来老车认识CURSOR表晚于前面提到的大师十年左右。
2018年左右老车开始学用CA,看到用CA从远程检索到VFP中的默认表名就是CURSOR,之后老车做过测试,应用CA从远程SQL检索来的CURSOR表、用BROW编辑时远程源表同步得到编辑,应用SPT语句检索来的CURSOR表则不能。由此我们有理由认为:应用SPT检索的CURSOR表并没有与远程源表保持链接,所以编辑它时要再用SPT语句向远程回写;应用CA检索的CURSOR仍然与远程源表保持着链接,所以编辑时不再需用代码回写。这样说来应用CA从远程SQL等数据库检索来的CURSOR表更伟大。
老车没学用远程视图,其CURSOR如何不宜乱说。

--------------------------------------------------------------------------
附:梁总发来的代码

LOCAL LCSQL
TEXT TO lcSQL TEXTMERGE NOSHOW PRETEXT 2
SELECT ID,序号,项目,行次,本月数,1000000000.0-1000000000.0 本期比重,本年累计数,1000000000.0-1000000000.0 累计比重,本月数公式,累计数公式,结转数,上年同期数,1000000000.00-1000000000.00 上年累计,1000000000.0-1000000000.0 上年比重,1000000000.0-1000000000.0 增减率 FROM 利润表 ORDER BY 序号
ENDTEXT
   
IF SQLEXEC(CONHDL, LCSQL, "TMP_LR") <> 1     && 利润
   MESSAGEBOX(MESSAGE(), 48, '提示')
   RETURN .F.
ENDIF
   
SELECT TMP_LR
CURSORSETPROP("Buffering",3,"TMP_LR")
CURSORSETPROP("Tables","利润表","TMP_LR")
CURSORSETPROP("KeyFieldList","ID","TMP_LR")
STORE '' TO FIELDS1,FIELDS2  

FOR I = 1 TO FCOUNT()
   IF NOT INLIST(FIELD(I), '本期比重', '累计比重', '上年比重', '上年累计数', '增减率')
      FIELDS1 = FIELDS1 + FIELD(I) + IIF(I=FCOUNT(),'',',')
      FIELDS2 = FIELDS2 + FIELD(I) + ' 利润表.' + FIELD(I) + IIF(I=FCOUNT(),'',',')
   ENDIF
ENDFOR  

CURSORSETPROP("UpdatableFieldList",FIELDS1,"TMP_LR")
CURSORSETPROP("UpdateNameList",FIELDS2,"TMP_LR")
CURSORSETPROP("SendUpdates",.T.,"TMP_LR")
搜索更多相关主题的帖子: 远程 CURSOR 应用 FIELD 检索 
2021-10-20 21:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507240-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.226692 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved