欢迎来到人人文库网! | 帮助中心 人人文库renrendoc.com美如初恋!
人人文库网
首页 人人文库网 > 资源分类 > DOC文档下载

外文翻译--Visual Studio .NET如何为并发控制生成SQL语句.doc

  • 资源大小:69.99KB        全文页数:12页
  • 资源格式: DOC        下载权限:游客/注册会员/VIP会员    下载费用:5
游客快捷下载 游客一键下载
会员登录下载
下载资源需要5

邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。注:支付完成后需要自己下载文件,并不会自动发送文件哦!

支付方式: 微信支付    支付宝   
验证码:   换一换

友情提示
2、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

外文翻译--Visual Studio .NET如何为并发控制生成SQL语句.doc

理学院毕业论文第1页/共12页英文翻译VISUALSTUDIONET如何为并发控制生成SQL语句翻译翟靖轩原作者STEVESTEINVISUALSTUDIOTEAMMICROSOFTCORPORATION2002年2月摘要这篇文章研究VISUALSTUDIONET为不同的并发控制方式所产生的SQL语句,如何对它们进行修改可以提高执行效率,以及如何生成不带并发控制的SQL语句。目录引言阅读此文章时应具备的一些知识生成的SQL语句在哪里并发与数据适配器DATAADAPTER优化生成的SQL语句并发与COMMANDBUILDER对象结论引言任何可能同时被多个用户访问或修改数据的应用程序,都需要进行并发控制。否则,一个用户更改记录时可能不经意的覆盖了其他用户的更改。VISUALSTUDIONET的设计工具可以生成“保持所有值”方式的开放式并发SQL语句或生成“最后的更新生效”方式的SQL语句来更新数据。这篇文章将解释不同的SQL语句是如何生成的如何修改自动生成的SQL语句可以提高执行效率阅读此文章时应具备的一些知识理学院毕业论文第2页/共12页你需要具备以下知识基本的ADONET概念,包括数据集DATASET以及数据适配器DATAADAPTERS。更多信息请参见ADONET数据访问介绍(INTRODUCTIONTODATAACCESSWITHADONET)。数据并发机制以及会操作VISUALSTUDIONET。更多内容请参见介绍ADONET中的数据并发INTRODUCTIONTODATACONCURRENCYINADONET)。自动生成的SQL语句在哪里自动生成的SQL语句在COMMAND对象的COMMANDTEXT属性里。在设计阶段配置DATAADAPTER对象时或使用COMMANDBUILDER对象时SQL命令被自动生成。更多信息,请参见并发与COMMANDBUILDER对象(CONCURRENCYANDCOMMANDBUILDEROBJECTS)。配置DATAADAPTER对象从工具箱的数据选项卡中拖一个DATAADAPTER对象从服务器资源管理器拖一个数据表选中已有的DATAADAPTER对象,然后单击在属性窗口底部的“配置数据适配器”链接COMMANDBUILDER对象COMMANDBUILDER对象在运行时刻被创建,更多信息请参阅SQLCOMMANDBUILDER或OLEDBCOMMANDBUILDER。并发控制与数据适配器DATAADAPTER使用“数据适配器配置向导”配置数据适配器时,你可以选择是否使用开放式并发来生成UPDATE和DELETE语句。一些思考和注意事项你的数据源必须有一个主键才能以开放式并发方式生成SQL语句当使用从“服务器资源管理器”拖放一个数据表的方式来创建DATAADAPTER对象时,DATAADAPTER对象自动生成基于开放式并发的UPDATE和DELETE语句。如果你不想使用开放式并发,右击DATAADAPTER对象,从快捷菜单中选择“配置数据适配器”,然后在“高级SQL生成选项”对话框中清除“使用开放式并发”选项的选定。向导则会重新创建不带并发检测的SQL语句。理学院毕业论文第3页/共12页当重新配置现有的DATAADAPTER时,应注意“高级SQL生成选项”对话框里的选项已经全部恢复默认。例如最初配置DATAADAPTER时没有选定“使用开放式并发”选项,但是当重新配置DATAADAPTER时,“使用开放式并发”选项却会被选定,即便你根本没有打开过“高级SQL生成选项”对话框。如果你在“数据适配器配置向导”的“选择查询类型”页面选择“使用现有的存储过程”,则“使用开放式并发”选项将不可用。存储过程仍按其原来的方式执行。如果想使用并发检测的话,必须将其包括到存储过程中、或在你的应用程序中编写相应的代码。当使用开放式并发来创建SQL命令时,不会对二进制数据列验证进行并发处理。这将导致用这种方法对大的二进制记录集执行按位比较算法时的效率低下。用向导生成SQL语句为了理解VISUALSTUDIONET如何使用开放式并发来生成SQL语句,让我们来看看用“数据适配器配置向导”生成的UPDATE语句。我们将查看同一条语句在选择“使用开放式并发”选项和不选择“使用开放式并发”选项时的不同状态。你会注意到,选择开放式并发与不选择开放式并发所生成SQL语句的区别只存在于WHERE子句上。注以下的例子使用用“数据适配器配置向导”生成的UPDATE语句,并从NORTHWIND示例数据库的CUSTOMERS表中选择了若干列。使用开放式并发的UPDATE语句这个例子使用了“数据适配器配置向导”的默认配置,即选中了“使用开放式并发”选项。注当使用开放式并发时,生成的COMMAND的参数集里还存在一个参数副本。第二个参数集(带ORIGINAL_前缀的那个)保存了最初从数据源里读取的值。检查WHERE子句发现,每一个生成的语句都要检测数据库当前的值是否等于最初读取的值(例,WHERECITYORIGINAL_CITY)。通过数据库中的每个字段与最初读取的值相比较,我们很容易确定是否同时有其他用户修改了某个字段。如果WHERE子句不成立,就没有记录会被修改,与此同时还引发了一个“数据库并发”异常。如果数据源的某个字段为理学院毕业论文第4页/共12页空值(NULL),生成的SQL语句同样验证最初读取的记录是否也为空值。UPDATECUSTOMERSSETCUSTOMERIDCUSTOMERID,COMPANYNAMECOMPANYNAME,CONTACTNAMECONTACTNAME,CONTACTTITLECONTACTTITLE,CITYCITYWHERECUSTOMERIDORIGINAL_CUSTOMERIDANDCITYORIGINAL_CITYORORIGINAL_CITYISNULLANDCITYISNULLANDCOMPANYNAMEORIGINAL_COMPANYNAMEANDCONTACTNAMEORIGINAL_CONTACTNAMEORORIGINAL_CONTACTNAMEISNULLANDCONTACTNAMEISNULLANDCONTACTTITLEORIGINAL_CONTACTTITLEORORIGINAL_CONTACTTITLEISNULLANDCONTACTTITLEISNULL;SELECTCUSTOMERID,COMPANYNAME,CONTACTNAME,CONTACTTITLE,CITYFROMCUSTOMERSWHERECUSTOMERIDCUSTOMERID不使用开放式并发的UPDATE语句这个例子更改了“数据适配器配置向导”的高级选项,没有选中“使用开放式并发”选项。以下的语句表明只要数据库中一条记录满足CUSTOMERIDORIGINAL_CUSTOMERID,则所有的字段都会被更新。不管这条记录现在是什么样的值,它都将被设置为通过SQL语句传递到数据源的值。在这里没有任何关于并发的检测,也无法得知是否同时有其它用户在更改这条记录。这种方式称为“最后的更新生效”方式。无论以前对这条记录进行过什么样的修改,更新操作都会执行。UPDATECUSTOMERSSETCUSTOMERIDCUSTOMERID,COMPANYNAMECOMPANYNAME,CONTACTNAMECONTACTNAME,CONTACTTITLECONTACTTITLE,CITYCITYWHERECUSTOMERIDORIGINAL_CUSTOMERID;SELECTCUSTOMERID,COMPANYNAME,CONTACTNAME,CONTACTTITLE,CITYFROMCUSTOMERSWHERECUSTOMERIDCUSTOMERID优化生成的SQL语句VISUALSTUDIONET生成“保持所有值”方式的SQL语句来实现开放式并发。虽然这可能没有生成最高效的SQL语句,但是它的却生成了可以对数据源所有列(包括主键)进行并发检测的SQL语句。使用“保持所有值”方式实现开放式并发,当执行效率非常低下时,你可以手工修改生成的SQL语句以使它们不检查数据源的所有列。最常见

注意事项

本文(外文翻译--Visual Studio .NET如何为并发控制生成SQL语句.doc)为本站会员(英文资料库)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

网站客服QQ:2846424093    人人文库上传用户QQ群:460291265   

[email protected] 2016-2018  renrendoc.com 网站版权所有   南天在线技术支持

经营许可证编号:苏ICP备12009002号-5