您当前所在位置:首页 > 计算机等级考试

2016计算机二级VFspt使用方法

编辑:

1970-01-01

csex='男'

sqlexec(nhandle,"exec getemployees ?sex",'employees')

select employees

brow

查询女员工

csex='女'

sqlexec(nhandle,"exec getemployees ?sex",'employees')

select employees

brow

设置本地表可更新服务器表

sqlexec(jb,"select id,bh,hyzhm,fzdw,rghsj,ghzrsj,xm,xb,gs_bm from rsda where lcbj=0 order by gbbh","gh")

***设置gh可更新rsda表

sele gh

cursorsetprop("tables","rsda","gh") &&设置临时表的更新目标表

cursorsetprop("keyfieldlist",'id',"gh") &&设置临时表的关键字

cursorsetprop("updatablefieldlist","id,fzdw,rghsj,ghzrsj,hyzhm","gh")&&设置临时表的更新字段

cursorsetprop("updatenamelist","id rsda.id,hyzhm rsda.hyzhm,rghsj rsda.rghsj,ghzrsj rsda.ghzrsj,fzdw rsda.fzdw","gh") &&&用gh中的相应字段更新rsda表

cursorsetprop("sendupdates",.t.,"gh")&&设置为可更新

cursorsetprop("wheretype",2)

cursorsetprop("buffering",5)&&设置表缓冲

顺便提一下,表缓冲必须有明确的tableupdate命令才能更新。

上面的功能都是通过本地的cursor来处理远程数据。spt还可以直接处理远程数据。

如将远程服务器上的表rsda中,性别为男的,都改成女的。

sqlexec(nhandle,"update rsda set xb='女' where xb='男'")&&由于这句是更新命令,不需要返回一个记录集,所以,第三个参数,光标名可以省略不写。

由此也就可以举一反三的明白,如何调用远程存储过程来更新数据了。

如将上面的更新语句写成存储过程

在服务器上

create proc updatesex

as

update rsda set xb='女' where xb='男'

go

vfp调用

sqlexec(jb,"exec updatesex")&&调用存储过程,不需要返回光标,取消第三个参数

如何开始一个远程事务

事务它包含一个可回滚的操作段。在sql server上在事务中的数据,并没有实际的写入数据库,而是将更新临时存储在缓冲中,只有明确的发出了commit或者rollback tran才结束这个事务,将操作取消或者将操作实际写入。

每个事务以begin tran开始,以commit tran或者rollback tran结束。倘若在遗漏了commit tran或者rollback tran,在sql server就很容易的表现为等待状态,即死锁状态,在等待该事务的释放。

免责声明

精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。