网站大量收购独家精品文档,联系QQ:2885784924

VFP+SQLSERVER实例讲解7.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VFPSQLSERVER实例讲解7

VFP+SQL SERVER实例讲解7 [日期:2007-06-21] 来源:? 作者: [字体:大 中 小] sp;from?customers *您将看到:所有记录Phone的值已经被Visual?foxpro的客户端修改了,值是:9999。按理说第2条、第3条记录被更新时会发生冲突,但由于Visual?FoxPro临时变更了更新冲突的检测方案为“关键字段”,这样原本应该能检测到的冲突被忽略了,Visual?FoxPro客户端的新值强行覆盖其它客户端的修改。 事实上,查看?sql?Server?的?Profiler?工具也证明了以上论述: sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2,?N@P1?nvarchar(24),@P2?varchar(50),?N9999?,?ALFKI sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2,?N@P1?nvarchar(24),@P2?varchar(50),?N9999?,?ANATR sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2,?N@P1?nvarchar(24),@P2?varchar(50),?N9999?,?ANTON sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2,?N@P1?nvarchar(24),@P2?varchar(50),?N9999?,?AROUT 放弃更新 如果要“放弃客户端对光标已经实施的变动”,该怎么办呢?这很简单,请使用TABLEREVERT()函数。这里有一个概念很重要:任何情况下执行本函数均不都会与远程数据源发生通讯,Visual?FoxPro只是从缓冲中把原先的数值取回填写入光标中。 那么Visual?FoxPro是怎样从缓冲中取回数据的呢?您可以用OLDVAL()函数得到相同的效果,它的用法这里暂不介绍! 在开放式行缓冲下使用TABLEREVERT()函数: 语法:TABLEUPDATE(.f.[,nWorkAear|cTableAlias])? 返回值:1。如果当前记录没有被修改,则返回0。? 可选参数——nWorkAear|cTableAlias。表示实行TABLEREVERT()的工作区,缺省表示对当前工作区有效。? ? 例如: USE?VCustomers CURSORSETPROP(Buffering,?3,?VCustomers) REPLACE?Phone?with?9999? ?VCustomer.phone *9999 ?TABLEREVERT(.F.,VCustomers) *返回1 ?VCustomer.phone *123456 USE?VCustomers CURSORSETPROP(Buffering,?3,?VCustomers) ?TABLEREVERT(.F.,VCustomers) *返回0 在开放式表缓冲下使用TABLEREVERT()函数: 语法:TABLEUPDATE(lAllRows[,nWorkAear|cTableAlias])? 返回值:放弃更新的记录数目? 必选参数——lAllRows。默认值为.F.,表示对当前记录放弃更新;本参数设定为?.T.,放弃更新所有被修改过的记录。? 可选参数——nWorkAear|cTableAlias。表示实行TABLEREVERT()的工作区,缺省表示对当前工作区有效。? ? USE?VCustomers CURSORSETPROP(Buffering,?5,?VCustomers) REPLACE?Phone?with?9999?next?4 *将第1、2、3、4、条记录的Phone改为9999 BROWSE go?2 ?TABLEREVERT(.F.,VCustomers) *1 ?TABLEREVERT(.T.,VCustomers) *3   刷新缓冲(refreshing?buffers) 记得在“以缓冲理解更新冲突”一节中我们提到过什么情况下Visual?FoxPro会刷新缓冲区。其中“远程视图光标被打开”是很好的理解,这里不再累述。 以?REQUERY()函数刷新远程视图光标 REQUERY()函数的作用就是重新执行远程视图的SELECT-SQL描述,也就是重新打开远程视图光标,所以对系统造成较大的负担。对于这个函数,我有几点建议: 执行成功,返回:1;反之

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档