XXXX大学本科毕业设计(论文)外文翻译
译文:
Visual Studio .NET如何为并发控制生成SQL语句
摘要:这篇文章研究Visual Studio® .NET为不同的并发控制方式所产生的SQL语句,
如何对它们进行修改可以提高执行效率,以及如何生成不带并发控制的SQL语句。
引言
任何可能同时被多个用户访问或修改数据的应用程序,都需要进行并发控制。否则,
一个用户更改记录时可能不经意的覆盖了其他用户的更改。Visual Studio .NET的设计工具可以生成“保持所有值”方式的开放式并发SQL语句或生成“最后的更新生效”方式的SQL语句来更新数据。这篇文章将解释:
不同的SQL语句是如何生成的
如何修改自动生成的SQL语句可以提高执行效率
阅读此文章时应具备的一些知识
你需要具备以下知识:
概念,包括数据集(DataSet)以及数据适配器(DataAdapters)。数据访问介绍(Introduction to Data Access with )。
数据并发机制以及会操作Visual Studio .NET。更多内容请参见介绍 中的数据并发(Introduction to Data Concurrency in )。
自动生成的SQL语句在哪里
mandText属性里。在设计阶段配置
mandBuilder对象时SQL命令被自动生成。更多信息,请参见 mandBuilder对象(Concurrency mand Builder Objects)。
配置DataAdapter对象
从工具箱的数据选项卡中拖一个DataAdapter对象
从服务器资源管理器拖一个数据表
选中已有的DataAdapter对象,然后单击在属性窗口底部的“配置数据适配器”链接
CommandBuilder对象
CommandBuilder对象在运行时刻被创建,更多信息请参阅 mandBuilder 或 mandBuilder。
并发控制与数据适配器(DataAdapter)
使用“数据适配器配置向导”配置数据适配器时,你可以选择是否使用开放式并发来生
成Update和Delete语句。
一些思考和注意事项
你的数据源必须有一个主键才能以开放式并发方式生成SQL语句
当使用从“服务器资源管理器”拖放一个数据表的方式来创建DataAdapter对象时,DataAdapter对象自动生成基于开放式并发的Update和Delete语句。如果你不想使用开放式并发,右击DataAdapter对象,从快捷菜单中选择“配置数据适配器”,然后在“高级SQL生成选项”对话框中清除“使用开放式并发”选项的选定。向导则会重新创建不带并发检测的SQL语句。
当重新配置现有的DataAdapter时,应注意“高级SQL生成选项”对话框里的选项已经全部恢复默认。例如最初配置DataAdapter时没有选定“使用开放式并发”选项,但是当重新配置DataAdapter时,“使用开放式并发”选项却会被选定,即便你根本没有打开过“高级SQL生成选项”对话框。
如果你在“数据适配器配置向导”的“选择查询类型”页面选择“使用现有的存储过程”,则“使用开放式并发”选项将不可用。存储过程仍按其原来的方式执行。如果想使用并发检测的话,必须将其包括到存储过程中、或在你的应用程序中编写相应的代码。
当使用开放式并发来创建SQL命令时,不会对二进制数据列验证进行并发处理。这将导致用这种方法对大的二进制记录集执行按位比较算法时的效率低下。
用向导生成SQL语句
为了理解Visual Studio .NET如何使用开放式并发来生成SQL语句,让我们来看看用“数
据适配器配置向导”生成的Update语句。我们将查看同一条语句在选择“使用开放式并发”选项和不选择“使用开放式并发”选项时的不同状态。
你会注意到,选择开放式并发与不选择开放式并发所生成SQL语句的区别只存在于Where子句上。注:以下的例子使用用“数据适配器配置向导”生成的Update语句,并从NorthWind示例数据库的Customers表中选择了若干列。
使用开放式并发的Update语句
这个例子使用了“数据适配器配置向导”的默认配置,即选中了“使用开放式并发”选项。
注: 当使用开放式并发时,mand的参数集里还存在一个参数副本。第二个参数集(带***@Original_前缀的那个)保存了最初从数据源里读取的值。
检查Where子句发现,每一个生成的语句都要检测数据库当前的值是否等于最初读取的值(例,WHERE City = ***@Original_City)。通过数据库中的每个字段与最初读取的值相比较,我们很容易确定是否同时有其他用户修改了某个字段。如
大学本科毕业设计(论文)外文翻译 来自淘豆网m.daumloan.com转载请标明出处.