您的位置:首页 > 其它

Web Form DataWindow Control原理与应用

2008-10-07 20:57 477 查看
 Principal and
Application of Web Form DataWindow Control

ZHANG Hao,CAI Li-Bin

(Information
Technology Research Institute, Jiujiang
University, Jiujiang, China)

 

Abstract[/b]: The
development procedure that DataWindow.NET Control controls Web includes system,
database, datawindow, DW form file, WebDatawindow control, business logic, and
storing data in four data buffers. And its transaction processing includes
setting up connection and opening transaction, related with Web DataWindow,
submitting transaction and rollbacking transaction. Through discussing the
intermediate level that encapsulates the operations, it and .NET is combined
and can be used to develop thin client of Internet.

Keywords[/b]: datawindow.net control;web;data buffer;transaction control

 [/b]

1.      [/b]引言[/b]

Sybase公司推出的Web Form DataWindow Control for ASP
.NET,继承了PowerBuilder在数据库的开发优势,将快速、简单的数据访问、复杂逻辑应用和数据展现的功能移植到 .NET平台,用于快速开发基于Internet的瘦客户端。故对其开发流程、系统框架及其应用等作以探讨。

2.      [/b]Web
Form DataWindow Control[/b]技术方案[/b]

Web Form DataWindow Control有别于过去的WebPB和HTML数据窗口两种方式,构架于微软.NET平台上①。而.NET平台则借以Windows操心系统的主导地位、.Net的用户界面优势、以及对多种编程语言如Visual Basic以及C#等易于上手编程语言的支持在技术上保持优势②。DataWindow与.NET两强结合使Internet开发迈上新的台阶,改变传统的Internet开发的方式。下图展示了DataWindow.Net的系统层次结构。

图3 Web Form DataWindow Control方式系统层次图

 

2.1.    
开发流程

DataWindow.NET开发Web应用的开发流程如图:

 

 

图4 基于Web Form
DataWindow Control的开发流程

 [/i]

其中,设计DataWindow是关键环节之一,所有底层数据库信息都存储在这里,SQL语句自动生成也是从这里获取信息。DataWindow.NET为我们提供了DataWindow的设计工具——DataWindow Designer,同时可将设计好的DataWindow保存为DW格式文件供Web
DataWindow Control控件读取。

Visual Studio中的Web DataWindow Control控件是.NET平台与Sybase DataWindow之间的桥梁,DataWindow信息的读取、数据操作、业务逻辑的实现都通过它来完成。

2.2.    
数据缓冲区

如同PowerBuilder的数据窗口一样,在每一个Web Form DataWindow Control对象中有4个二维表作为数据缓冲区,它们是主缓冲区、删除缓冲区、过滤缓冲区和原始缓冲区。每个缓冲区具有NotModified,DataModified,New和NewModified状态标志。这四个缓冲区的特性与操作也与PowerBuilder的数据窗口相同,为PowerBuilder程序员快速转向Web开发提供了方便。

2.3.    
事务处理

在DataWindow.NET中实现事务需使用AdoTransaction类,位于Sybase.DataWindow名字空间中。此外,还需使用到.NET框架中的数据库连接类。目前DataWindow.NET1.5只支持OLE连接,必须使用OleDbConnection类。以下是使用事务的简单例子:

1)       
建立连接并打开事务

……//建立一OLE连接对象theConnection

     AdoTransaction
SQLCA = new AdoTransaction(theConnection);

     theConnection.Open();

     SQLCA.BindConnection();

     SQLCA.Transaction
= theConnection.BeginTransaction();

2)       
与Web DataWindow关联

WebDataWindowControl1.SetTransaction(
SQLCA);

3)       
事务提交

     SQLCA.Transaction.Commit();

4)       
事务回滚

     SQLCA.Transaction.Rollback();

3.      [/b]Web
Form DataWindow Control[/b]实际应用[/b]

在实际应用中,笔者设计了介于Dotnet数据提供层与Web Form DataWindow Control之间的Web DataWindow操作层,封装了Web Form DataWindow Control的常用操作③。

1)       
WDWHelper类的数据成员定义

     public
class WDWHelper

     {

         System.Data.OleDb.OleDbConnection
theConnection ;

         Sybase.DataWindow.AdoTransaction
SQLCA;

         System.Collections.ArrayList
WebDWs;

}

2)       
打开数据库连接及事务

         public void
OpenOleConn(string OleString)

         {

              theConnection = new
System.Data.OleDb.OleDbConnection();

              theConnection.ConnectionString
= OleString;

              SQLCA = new
Sybase.DataWindow.AdoTransaction(theConnection);

              theConnection.Open();

              SQLCA.BindConnection();

         }

public void
OpenOleTrans(string OleString)

         {

              OpenOleConn( OleString);

              SQLCA.Transaction
=theConnection.BeginTransaction();

         }

3)       
与多个Web DataWindow Control关联

         public void
AddWDWC(Sybase.DataWindow.Web.WebDataWindowControl wdwc1)

         {

              wdwc1.SetTransaction(
SQLCA);

              WebDWs.Add(wdwc1);

         }

4)       
更新所关联的Web DataWindow Control

         public void UpdateMultiDW()

         {

              for(int
i=0;i<WebDWs.Count; ++i)               ((Sybase.DataWindow.Web.WebDataWindowControl)WebDWs[i]).UpdateData(true,false);

         }

5)       
提交、回滚及关闭连接

         public void Commit()

         {

              SQLCA.Transaction.Commit();

         }

         public void Rollback()

         {

              SQLCA.Transaction.Rollback();

         }

         public void CloseConn()

         {

              theConnection.Close();

         }

     通过使用Web DataWindow操作层,大大简化了数据库存取及事务操作,并且让PowerBuilder程序员以熟悉的方法在Web页面中操作数据库。涉及多数据窗口的事务提交代码变得十分简洁:

WDWHelper wdwh;

         wdwh.OpenOleTrans(ConnStr);

         wdwh.AddWDWC(WebDataWindowControl1);

         wdwh.AddWDWC(WebDataWindowControl2);

         try

         {

              wdwh.UpdateMultiDW();

              wdwh.Commit();

              wdwh.CloseConn();

         }

         catch(Sybase.DataWindow.DbErrorException
ex)

         {

              wdwh.Rollback();

              wdwh.CloseConn();

         }

4.      [/b]结束语[/b]

Web Form DataWindow Control继承了PowerBuilder数据窗口在数据库开发方面的优势,可用于快速开发基于Internet的瘦客户端应用。本文对其开发流程、系统框架及若干核心问题做了详细的探讨,并将其常用操作抽象成为中间层组件。笔者在为某电信行业开发的综合信息查询系统中采用了此项技术,取得了良好的效果。

参考文献:[/b]

[1]    
王宝祥.基于ADO.NET的数据库访问技术研究[J].计算机应用与软件,2004,21(2):120-122

[2]    
丁书耕,张路崎,辛艳芬.基于DotNet平台的应用程序开发框架的研究[J]. 微机发展, 2003,13(8):20-23

[3]    
张宏官刘强.基于ADO.NET技术实现通用的数据层组件[J].计算机工程与应用,2004,40(1):181-184

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: