首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

当地视图更新源表部份字段数据

2013-06-19 
本地视图更新源表部份字段数据源表a:系统编号,客户id,工号,订量,生产量,出货量视图a:系统编号,客户id,工号

本地视图更新源表部份字段数据
源表a:系统编号,客户id,工号,订量,生产量,出货量
视图a:系统编号,客户id,工号,订量,生产量,出货量----过滤条件:客户id=?xx and 出货量>0
视图更新条件中关键字为:系统编号,可更新字段为:生产量,表为:源表a,可以更新有开启
在表单中grd表格数据源为“视图a”,生产量对应的column可以修改,更改生产量数据后,查看数据源没有变
请帮忙看一下是什么问题
[解决办法]

用视图更新源表的示例


test 表是一个记录单位信息的,主关键字是dw_id(整型),有8个字段。

表单5上只有一个 “text” 控件、一个 “命令按钮” 控件:

一个“text”控件:用于输入条件值(整型),未设定任何属性(全缺省)。

以下是“命令按钮”click 中的代码:
*******************begin***********************
open database c:\qtgl\论坛\数据1
tt=thisform.text1.value
creat sql view cxb as select * from test where test.dw_id=?tt
select 0
use cxb
lSuccess=CURSORSETPROP("Tables", "test", "cxb")
lSuccess=CURSORSETPROP("KeyFieldList", "dw_id", "cxb")
lSuccess=CURSORSETPROP("UpdateType", 1, "cxb")
lSuccess=CURSORSETPROP("UpdatableFieldList", "dwmc,xm,dh,bz", "cxb")
lSuccess=CURSORSETPROP("WhereType", 1, "cxb")
lSuccess=CURSORSETPROP("Buffering", 5, "cxb")
do form c:\qtgl\论坛\表单6
********************* end *************************

表单6上只有4个“text”控件、一个“命令按钮”控件:
4个“text”控件分别绑定cxb.dwmc,cxb.xm,cxb.dh,cxb.bz;除此之外未设定任何属性(全缺省)
以下是“命令按钮”click 中的代码:
*******************begin************************
lSuccess=CURSORSETPROP("SendUpdates", .t., "cxb")
select cxb
BEGIN TRANSACTION

* Try to update all records in selected table
m.lSuccess = TableUpdate(.T.,.F.) &&successful update
IF m.lSuccess
= messagebox( "提交成功。" )
END TRANSACTION
else
= messagebox( "抱歉,未提交上。请重做一次。" )
ROLLBACK
ENDIF
release thisform
********************* end ********************************

在表单6的destory事件中的代码:
***********************begin***************
select cxb
use
delete view cxb
select test
use
**********************end ********************

测试结果
先运行“表单5”,输入1000后,点击“命令按钮”后出现“表单6”。
在“表单6”上任意一个“text”控件上输入数据(随便按)后,点击“命令按钮”后出现:提交成功。
按“确定”后回到“表单5”。
重复后,无论改哪个“text”控件上的数据都正确提交!
 
 

热点排行