VFP+SQLSERVER实例讲解4.docVIP

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

VFP+SQL SERVER实例讲解4 [日期:2007-06-21] 来源:? 作者: [字体:大 中 小] KeyField,?.T.) DBSETPROP(VCustomers.CompanyName,?Field,?Updatable,?.T.) DBSETPROP(VCustomers.Phone,?Field,?Updatable,?.T.) DBSETPROP(VCustomers,?View,?SendUpdates,?.T.) DBSETPROP(VCustomers,?View,?WhereType,?3) *设定更新冲突解决方案为“关键字和已更新字段” DBSETPROP(VCustomers,?View,?UpdateType,?1) *进程一 USE?VCustomers BROWSE *将指针停留在第一条记录上,即:CustomerID=ALFKI REPLACE?Phone?with?123456 *离开Visual?foxpro,千万别移动记录指针 进程二 使用?sql?Server?的?Enterprise?Manager?打开?Customers表,把指针停在第一条记录上,修改Phone的值为00000,移动指针到下一条记录。 回到Visual?FoxPro,移动指针,您会看到图9: 图?9.更新冲突 按“还原”按钮。试验结束。 仔细想想,您就会明白什么是更新冲突了。 上例中,如果我们设定“关键字”方式检测更新冲突: DBSETPROP(VCustomers,?View,?WhereType,?1) 其他均按原先步骤进行,您会发现没有更新冲突产生。因为Visual?FoxPro仅检测关键字是否变化,这里进程一、二都没有修改关键字,当然不会有更新冲突。 上例中,如果我们设定“关键字和可更新字段”方式检测更新冲突: DBSETPROP(VCustomers,?View,?WhereType,?2) 其他均按原先步骤进行,这时会有更新冲突产生。因为Visual?FoxPro不仅检测关键字是否变化,还要检测所有的可更新字段字段(本例是所有字段)是否发生变化,这里进程二先进程一修改了可更新字段?Phone,进程一当然会有更新冲突发生。 如果使用?SQL?Server?的?Profiler?程序您能更好的了解以上内容: 图?10。?SQL?Server?的?Profiler?程序 1.使用“关键字段”冲突检测方式,发送更新时,Visual?FoxPro?自动生成以下语句在?SQL?Server?中执行: sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2,?N@P1?nvarchar(24),@P2?varchar(50),?N123456?,?ALFKI? 可见,UPDATE?的?WHERE?子句只包括关键字段:CustomerID。在Visual?FoxPro?缓冲中?CustomerID=ALFKI,Visual?FoxPro?就以这个值作为数据源是否发生改变的依据。如果?SQL?Server执行这条UPDATE语句时找不到CustomerID=ALFKI的记录(我们认为是其它用户先期修改了CustomerID)——SQL?Server?告诉?Visual?FoxPro?更新冲突发生了。? 2.使用“关键字和可更新字段”冲突检测方式,发送更新时,Visual?FoxPro?自动生成以下语句在?SQL?Server?中执行: sp_executesql?NUPDATE?dbo.Customers?SET?Phone=@P1?WHERE?CustomerID=@P2?AND?CompanyName=@P3?AND?Phone=@P4,?N@P1?nvarchar(24),@P2?varchar(50),@P3?nvarchar(40),@P4?nvarchar(24),?N123456?,?ALFKI,?NAlfreds?Futterkiste?,?N030-0074321?? 可见,UPDATE?的?WHERE?子句包括关键字段:CustomerID,和所有可更新字段:CompanyName、Phone。Visual?FoxPro?缓冲中CustomerID=ALFKI、CompanyName=Alfreds?Futterkiste、Phone=030-0074321,如果?SQL?Server执行这条UPDATE语句时找不到(CustomerID=ALFKI?AND?CompanyName=Alfreds?Futterkiste?AND?Phone=030-0074321)的记录(我们认为是其它用户先

文档评论(0)

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

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

1亿VIP精品文档

相关文档