欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机毕业设计外文文献翻译--Visual Studio .NET如何为并发控制生成SQL语句

    • 资源ID:129887       资源大小:34.05KB        全文页数:8页
    • 资源格式: DOCX        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    计算机毕业设计外文文献翻译--Visual Studio .NET如何为并发控制生成SQL语句

    1、本科毕业设计(论文) 外文翻译 本科毕业设计 (论文 )外文翻译 译文: Visual Studio .NET 如何为并发控制生成 SQL 语句 作者: 史蒂夫斯坦的 Visual Studio 团队 时间: 2002 年 2 月 摘要 :这篇文章研究 Visual Studio .NET 为不同的并发控制 方式所 产生的 SQL 语句, 如何对它们进行修改可以提高执行效率,以及如何生成不带并发控制的 SQL 语句。 引言 任何可能同时 被多个用户访问或修改数据的应用程序,都需要进行并发控制。否则 , 一个用户更改记录时可能不经意的覆盖了其他用户 的更改 。 Visual Studio .NE

    2、T 的设计工具可以生成“保持所有值 ”方式 的开放式并发 SQL 语句或生成 “最后的更新生效 ”方式的 SQL 语句来更新数据。这篇文章将解释: 不同的 SQL 语句是如何生成的 如何修改自动生成的 SQL 语句可以 提高执行效率 阅读此文章时应具备的一些知识 你需要具备以下知识: 基本的 ADO.NET 概念,包括数据集 (DataSet)以及数据适配器 (DataAdapters)。更多信息请参见 ADO.NET 数据访问介绍 ( Introduction to Data Access with ADO.NET) 。 数据并发机制以及会操作 Visual Studio .NET。更多内容

    3、请参见 介绍 ADO.NET 中的数据并发 (Introduction to Data Concurrency in ADO.NET) 。 自动生成的 SQL 语句在哪里 自动生成的 SQL 语句在 command 对象的 CommandText 属性里。在设计阶段配置 DataAdapter 对象时或使用 CommandBuilder 对象时 SQL 命令被自动生成。更多信息,请参见 并发与 CommandBuilder 对象( Concurrency and Command Builder Objects) 。 配置 DataAdapter 对象 从工具箱的数据选项卡中拖一个 DataAd

    4、apter 对象 从服务器资源管理器拖一个数据表 选中已有的 DataAdapter 对象,然后单击在属性窗口底部的 “ 配置数据适配器 ” 链接 CommandBuilder 对象 CommandBuilder 对象在运行时刻被创建,更多信息请参阅 SqlCommandBuilder 或 OleDbCommandBuilder。 并发控制与数据适配器 (DataAdapter) 使用 “ 数据适配器 配置 向导 ” 配置数据适配器时,你可以选择是否使用开放式并发来生 成 Update 和 Delete 语句。 一些思考和注意事项 本科毕业设计(论文) 外文翻译 你的数据源必须有一个主键才能以

    5、开放式并发方式生成 SQL 语句 当使用从 “ 服务器资源管理器 ” 拖放一个数据表的方式来创建 DataAdapter 对象时,DataAdapter 对象自动生成基于开放式并发的 Update 和 Delete 语句。如果你不想使用开放式并发,右击 DataAdapter 对象, 从快捷菜单中选择 “配置数据适配器 ”,然后 在“ 高级 SQL生成选项 ” 对话框中清除 “ 使用开放式并发 ” 选项 的选定 。向导则会重新创建不带并发检测的 SQL 语句。 当重新配置现有的 DataAdapter 时,应注意 “ 高级 SQL 生成选项” 对话框里的选项已经全部恢复默认。例如最初配置 Da

    6、taAdapter 时没有 选定“ 使用开放式并发 ”选项 , 但是当重新配置 DataAdapter 时, “使用 开放式并发 ” 选项却会被选定,即便你根本没有打开过“ 高级 SQL 生成选项 ” 对话框。 如果你在 “数据适配器配置 向导 ” 的“选择查询类型”页面 选择 “ 使用 现 有的存储过程 ” ,则 “使用开放式并发 ”选项将不可用。存储过程仍按其原来的方式执行。如果想使用并发检测的话,必须将其包括到存储过程中、或在你的应用程序中编写 相应的代码 。 当使用开放式并发来创建 SQL 命令时,不 会 对二进制 数据 列验证 进行 并发 处理 。 这将导致 用这种方法对大 的 二进

    7、制记录集执行按位比较算法时 的 效率低 下 。 用向导生成 SQL 语句 为了理解 Visual Studio .NET 如何使用开放式并发来生成 SQL 语句,让我们来看看用 “ 数 据适配器 配置 向导 ” 生成的 Update 语句。我们将查看同一条语句在选择 “使用 开放式并发 ” 选项和不选择 “使用 开放式并发 ” 选项 时的 不同状态。 你会注意到,选择开放式并发与不选择开放式并发所生成 SQL 语句的区别只 存 在于 Where 子句上。 注: 以下的例子使用 用“ 数据适配器 配置 向导 ” 生成的 Update 语句,并 从 NorthWind 示例数据库的 Custome

    8、rs 表中选择了若干列。 使用开放式并发的 Update 语句 这个例子使用了 “ 数据适配器 配置 向导 ” 的默认 配置 ,即 选中了“ 使用开放式并发 ”选项 。 注 : 当使用开放式并发时,生成的 command 的参数集里还 存在 一个参数副本。第 二个参数集(带 Original_前缀的那个)保存了最初从数据源里读取的值。 检查 Where 子句发现,每一个生成的语句都要检测数据库当前的值是否等于最初读取的值(例, WHERE City = Original_City)。通过数据库中的每个字段与最初读取的值相比较,我们很容易确定是否同时有其他用户修改了某个字段。如果 Where 子

    9、句不 成立 ,就没有记录会被修改, 与此 同时还引发了一个 “ 数据库并发 ” 异常。如果数据源的某个字段 为 空值( NULL),生成的 SQL 语句同样验证最初读取的记录是否 也为 空 值。 UPDATE Customers SET CustomerID = CustomerID, CompanyName = CompanyName, ContactName = ContactName, ContactTitle = ContactTitle, City = City WHERE (CustomerID = Original_CustomerID) AND (City = Original

    10、_City OR Original_City IS NULL AND City IS NULL) AND (CompanyName = Original_CompanyName) AND (ContactName = Original_ContactName OR 本科毕业设计(论文) 外文翻译 Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = Original_ContactTitle OR Original_ContactTitle IS NULL AND ContactTitle IS NU

    11、LL); SELECT CustomerID, CompanyName, ContactName, ContactTitle, City FROM Customers WHERE (CustomerID = CustomerID) 不使用开放式并发的 Update 语句 这个例子更改了“数据适配器配置向导”的高级选项,没有选中“使用开放式并发”选项。 以下的语句表明:只要数据库中一条记录满足 CustomerID = Original_CustomerID,则所有的字段都会被更新。不管这条记录现在是什么样的值,它都将被设置为通过 SQL 语句传递到数据源的值。在这里没有任何关于并发的检测,也无

    12、法得知是否同时有其它用户在更改这条记录。这种方式称为 “ 最后的更新生效 ” 方式。无论以前对这条记录进行过什么样的修改,更新操作都会执行。 UPDATE Customers SET CustomerID = CustomerID, CompanyName = CompanyName, ContactName = ContactName, ContactTitle = ContactTitle, City = City WHERE (CustomerID = Original_CustomerID); SELECT CustomerID, CompanyName, ContactName, C

    13、ontactTitle, City FROM Customers WHERE (CustomerID = CustomerID) 优化生成的 SQL 语句 Visual Studio .NET 生成 “保持所有值 ”方式 的 SQL 语句来 实现 开放式并发。虽然 这 可能 没 有生成 最 高 效的 SQL 语句,但是它 的却 生成 了 可以对数据源所有列(包括主键)进行并发检测的SQL 语句。 使用 “保持所有值 ”方式实现开放式并发,当执行效率非常低下时,你可以手工修改生成的 SQL 语句以使它们不检查数据源的所有列。最常见的方式是使用时间戳或版本号字段。如果你的数据源包含一个每次修改记录

    14、时都会更新的时间戳字段,你只需要验证数据源中的时间戳和你程序中的时间戳二者是否匹配,就可以知道是否同时有其他用户修改了记录。 下面这条 SQL 语句使用检查时间戳模式。 注: 这个例子假设数据库已经设置了时间戳 字段 UPDATE Customers SET CustomerID = CustomerID, CompanyName = CompanyName, ContactName = ContactName, ContactTitle = ContactTitle, City = City WHERE (CustomerID = Original_CustomerID) AND (TimeStamp = Original_TimeStamp); SELECT CustomerID, CompanyName, ContactName, ContactTitle, City, TimeStamp FROM Customers WHERE (CustomerID = CustomerID) 并发与 CommandBuilder 对象 当应用程序使用 SqlCommandBuilder 或者 OleDbCommandBuilder 时,生成的 Update 和 Delete 语句的 CommandText 属性被自动的 以 开放式并发方式 创建 。如果你不想用开放式并发,


    注意事项

    本文(计算机毕业设计外文文献翻译--Visual Studio .NET如何为并发控制生成SQL语句)为本站会员(泛舟)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583