SPT下,删除远程表后刷新问题

lzguanghome 2017-02-25 11:11:04
表单的INT事件中:
**———— 1.设置远程视图需要的变量
Table0="khgli" &&源表
Table1="khgli1" &&临时表
KeyFieldo="bhao" &&临时表的关键字
FieldList="" &&需要更新的字段
NameList="" &&临时表字段与源表字段的对应关系

**———— 2.建立远程视图
my_select="Select * From &Table0"
SQLExec(Pub_ConnHandle,my_select,Table1)

**———— 3.获取临时表所有字段名
SELECT &Table1
FOR i = 1 TO FCOUNT()
i2 = LOWER(ALLTRIM(FIELD(i)))
FieldList = FieldList + IIF(EMPTY(FieldList),"",",") + i2
NameList = NameList + IIF(EMPTY(NameList),"",",") + i2 + " " + Table0 + "." + i2
NEXT

**———— 4.设置临时表属性,使其能更新服务器远程表
CursorSetProp("Tables",Table0,Table1) && 1.设置临时表与远程表的表名,如果涉及多个表就这样写: CursorSetProp("Tables","源表1,源表2","临时表")
CursorSetProp("KeyFieldList",KeyFieldo,Table1) && 2.设置临时表的关键字(注意不是源表的字段)
CursorSetProp("UpdatableFieldList",FieldList,Table1) && 3.设置临时表的哪些字段需要更新到源表
CursorSetProp("UpdateNameList",NameList,Table1) &&& 4.设置临时表字段与源表字段的对应关系
CursorSetProp("SendUpdates",.T.,Table1) && 5.打开 SQL 发送开关,最关键的一步
CursorSetProp("WhereType",2,Table1) &&更新源表的 WHERE 子句:1.根据关键字;2.根据关键字+可更新字段;3.根据关键字+已更新字段;4.根据关键字+时间戳
CursorSetProp("Buffering",3,Table1) &&设置缓冲:1.无缓冲;2.保守式记录锁定;3.开放式记录锁定;4.保守式表锁定;5.开放式表锁定

Thisform.mygrid()

删除按纽的Click事件中:
**——开始 VFP 事务处理.
Begin Transaction
lEverythingOK=Tableupdate(0,.F.,Table1) &&开始更新远程表
If lEverythingOK
=REQUERY("&Table1")
End Transaction &&结束 VFP 事务处理.
Thisform.grid1.Refresh
Messagebox("更新成功!",64,"提示")
Else
ROLLBACK
=TABLEREVERT(.T.) &&取消对临时表的修改,使其与远程表相同
Messagebox("更新失败!",16,"警告")
Return
ENDIF

程序运行后,源表的数据能删除,但会出错,提示“在事务处理期间不能发布此命令”。错误指向:=REQUERY("&Table1"),尝试把=REQUERY("&Table1")写在其它地方也没有用。
我的目的是删除远程表后立即刷新,使远程表(绑定了Grid)与源表相同,而不单单是加了一个删除标记,搞了几天了都没有搞定,请教各位老师帮个忙,先谢谢了!
...全文
665 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzguanghome 2017-03-14
  • 打赏
  • 举报
回复
apple_8180老师您好,谢谢您的回复。 可能是我没有说清楚,我的意思是,在SPT下,删除临时表的记录后,怎样刷新,使临时表与源表相同。 我现在是用Set Deleted On,让临时表加了删除标记的记录“隐藏”了,可这样一样,记录总数RECCOUNT()和当前记录RECNO()又与实际不相同,删除后跳转记录(如GO、SKIP)也成了问题。 在远程视图中有REFRESH( )和REQUERY( )可以保持临时表与源表相同,可我现在是用SPT!要怎样才能删除临时表的记录后使临时表与源表保持一致呢,请apple_8180老师赐教!不胜感激!!
十豆三 2017-03-04
  • 打赏
  • 举报
回复

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧