| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1428 人关注过本帖, 1 人收藏
标题:数据表缓冲数据更新不正确,无论在表单中确认还是放弃,表中都只有一条记录 ...
取消只看楼主 加入收藏
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
结帖率:60%
收藏(1)
已结贴  问题点数:10 回复次数:0 
数据表缓冲数据更新不正确,无论在表单中确认还是放弃,表中都只有一条记录。求教!
求教,如题用缓冲数据进行记录生成与更新,但生成的数据没问题,却无法按我想的在确认后正确更新。请高手指点什么地方有误!
下面是定义的函数内容

****前面的数据定义过程省了,前面有函数定义和参数传递接收
SELECT 10   **为了避免冲突,设了个远的。
USE JKXFJHBLSB EXCLUSIVE  
DELETE ALL  **这是个临时表,以前数据没用。
=CURSORSETPROP("BUFFERING",4)  
=FLOCK()

****中间是记录赋值过程
MEMZJS=2+MEMSYYS+IIF(MEMSYTS>0,1,0)+1
MEMZHFZE=LXJS(MEMJKBJ,MEMQSRQ,MEMZZRQ,MEMLX1,MEMLX2,MEMLX3,MEMLX4)
MEMJDZXF=RZGWFJS(MEMJKBJ,MEMQSRQ,MEMZZRQ,MEMLX1,MEMLX2,MEMLX3,MEMLX4,MEMLX5)
MEMLXZE=MEMZHFZE-MEMJDZXF
FOR MEMLS=1 TO MEMZJS
   APPEND BLANK
ENDFOR
GO 1
REPLACE DABH WITH MEMDABH
GO 2
REPLACE DABH WITH MEMDABH*GO 3
IF MEMSYYS>0
   FOR MEMLS=1 TO MEMSYYS
      MEMMC='MEMYUE'+ALLTRIM(STR(MEMLS,2))
      SKIP
      REPLACE DABH WITH MEMDABH,KHBM WITH MEMKHBM,KHMC WITH MEMKHMC,JHRQ WITH &MEMMC,JHJE WITH ROUND(MEMJKBJ*(MEMLX4-MEMLX5),2),;
         CZYBM WITH SYSCZYBM,CZYXM WITH SYSCZYXM,CZRQ WITH DATE()
   ENDFOR
   MEMJLH=RECNO()
   SUM JHJE TO MEMYSX FOR ALLTRIM(JHXS)='收回'
   GO MEMJLH
ENDIF
IF MEMSYTS<>0 .AND. MEMSYYS<>0
   SKIP
   REPLACE DABH WITH MEMDABH,KHBM WITH MEMKHBM,KHMC WITH MEMKHMC,JHRQ WITH MEMZZRQ,JHJE WITH MEMLXZE-MEMYSX,;
      CZYBM WITH SYSCZYBM,CZYXM WITH SYSCZYXM,CZRQ WITH DATE()
ENDIF
SKIP
IF MEMSYYS<>0
   REPLACE DABH WITH MEMDABH,KHBM WITH MEMKHBM,KHMC WITH MEMKHMC,JHRQ WITH MEMZZRQ,JHJE WITH MEMJKBJ,;
      CZYBM WITH SYSCZYBM,CZYXM WITH SYSCZYXM,CZRQ WITH DATE()
ELSE
   REPLACE DABH WITH MEMDABH,KHBM WITH MEMKHBM,KHMC WITH MEMKHMC,JHRQ WITH MEMZZRQ,JHJE WITH MEMJKBJ+MEMLXZE-MEMYSX,;
      CZYBM WITH SYSCZYBM,CZYXM WITH SYSCZYXM,CZRQ WITH DATE()
ENDIF
REPLACE ALL JHXLH WITH RECNO()
MEMQR=''
GO TOP
****赋值结束
DO FORM JHBZ WITH MEMQR TO MEMQR1   ***调用表单在表格中显示生成的数据并修改,设两个按钮,一个返回.T. 一个返回.F.
IF MEMQR1=.T.
GO TOP
   BEGIN TRANSACTION
   MEMCG=TABLEUPDATE()
   IF MEMCG=.F.
      MEMZT=MESSAGEBOX('  数据保存未成功,请检查服务器及网络状态......',(5+48),'提示信息')
      IF MEMZT=4
         ROLLBACK    **选择重试,返回。
      ELSE
         TABLEREVERT(.T.)
         END TRANSACTION
      ENDIF
   ELSE
      END TRANSACTION
   ENDIF
   UNLOCK
ENDIF
USE
SELECT 1
RETURN
ENDFUNC
搜索更多相关主题的帖子: 数据表 
2012-05-28 10:39
快速回复:数据表缓冲数据更新不正确,无论在表单中确认还是放弃,表中都只有一条 ...
数据加载中...
 
   



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

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