论文部分内容阅读
摘要:本文介绍了ADO.net技术的工作原理及其对象模型,并以IPTV系统为实例阐述了ADO.net技术在系统开发中的应用。该系统在数据的访问速度、数据交换、开放性能及网络支持等方面有明显的优势,性能得到了很大的提高。
关键词:ADO.net数据访问技术;SQL Server2000;IPTV点播系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30143-03
ADO.net Data Access Technology in the System of IPTV
DENG Ting1,2, WANG Jia-yang1
(1.School of Information Science and Engineering, Central Sourth University, Changsha 410083, China; 2.Hunan Vocational College of Science and Technology, Changsha 410118, China)
Abstract: This paper introduces the principle of ADO.net technology and object model, and IPTV system as an example to the ADO.net described in the Application Development System. The system speed data access, data exchange, open network performance and support, has obvious advantages, performance was much improved.
Key words: ADO.net data access technology; SQL Server2000; IPTV-on-Demand System
1 引言
IPTV全称是Internet Protocol Television,中文名称是因特网协议电视,或者是交互式网络电视。它主要是以机顶盒(STB Set-Top-Box)+电视机、电脑、手机、PDA等具有连接Intenret功能的设备作为用户终端,通过IP网为用户提供多媒体交互信息的通信系统。IPTV可提供多种多媒体服务功能,包括数字电视节目、可视IP电话、DVDNCD播放、互联网浏览、电子邮件以及多种在线信息咨询、娱乐、教育及商务功能。我们采用Visual C 6.0为开发平台,采用ADO技术开发了这套系统。Visual C 提供了简单、灵活、访问速度快、可扩展性强的开发技术, 而这也是Visual C 的优势所在。在Visual C 提供的几种主要、易用的方法当中。以ActiveX技术为基础的ADO.net是为Microsoft最新和最强大的数据访问接口OLE DB而设计的,它为OLE DB提供了简单一致的高层编程接口,在系统数据访问方面具有极大的灵活性,并且易于学习和运用。下面以IPTV点播系统为实例,阐述ADO.net技术在系统开发当中的应用。
2 IPTV点播系统
IPTV点播系统是充分利用B/S体系结构,建立一个实用、快速、实用方便的管理信息系统,把对各级服务器的操作和管理过渡到一个真正开放的、与平台无关的环境中。
2.1 系统结构介绍
IPTV点播系统中的内容管理系统实现对系统中媒体内容的集中管理,包括内容信息和内容分布状态的管理和维护功能。此系统采用B/S模式,服务器采用操作系统为Windows NT,客户机平台可以是Windows 9x,Windows NT等,数据库采用SQL Server 2000。系统的开发平台是Visual C (VC)6.0,利用它可以方便地开发C/S或者B/S模式的应用程序。VC 6.0具有多种数据库服务接口,但最具有竞争力的是ADO.net,本系统即采用ADO.net技术。
2.2 系统功能设计
本论文讨论IPTV点播系统中的内容管理模块的设计。包括如下:
(1)发布点类型管理;
(2)文件分发管理;
(3)发布点内容管理:
①发布点管理(启动禁用发布点、查看修改发布点、添加删除发布点);
②文件管理。
3 ADO.net技术及其应用
ADO.NET是基于.NET框架、面向分布式和以XML数据格式为核心的数据访问技术,它提供了一组数据访问服务的类,ADO.NET统一了数据容器类编程接口,无论编写何种应用程序都可以通过同一组类来处理数据。无论后端数据源是SQL Server数据库、Oracle数据库、其他数据库、XML文件,还是一个文本文件,都使用一样的方式来处理它们。同时,为了方便程序员使用ADO.NET,它还提供了一组丰富的控件,利用可视化方式开发数据库应用。
ADO. NET支持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。设计ADO.NET的目的是为了满足这一新编程模型的以下要求:具有断开式数据结构;能够与XML紧密集成;具有能够组合来自多个、不同数据源的数据的通用数据表示形式以及具有为与数据库交互而优化的功能,这些要求都是.NET Framework固有的内容。
ADO.NET包含两大核心控件,分别是.NET Framework数据提供程序和DataSet.NET Framework数据提供程序用于连接到数据库、执行命令和检索结果,它包括四个核心对象。Connection对象用于与特定的数据源建立连接。Command对象用于对数据源执行命令。DataReader对象用于从数据源中读取只向前的只读数据流,它是一个简易的数据集,另外一个数据集是DataSet。DataAdapter对象用于用数据源的数据填充DataSet数据集并解析更新数据集。DataSet是一个功能丰富、较复杂的数据集,它是支持ADO.NET的断开式、分布式数据方案的核心对象。DataSet表示包括相关表、主外键约束和表间关系在内的整个数据集。DataSet专门用来处理从数据源获得的数据,无论数据来自什么数据源,它都使用相同的方式操作数据。
通常,使用ADO.NET开发数据库应用程序应遵循以下几个步骤:
(1)选择所使用的数据源,即选择使用哪个.NET Framework数据提供程序;
(2)使用Connection对象建立与数据源的连接;
(3)使用Command对象完成对数据源的连接;
(4)使用数据集对获得的数据进行各种操作,即利用DataReader对象或DataSet对象;
(5)缓存数据;
(6)使用各种数据控件,如DataGrid控件显示数据。
4 ADO.net技术在IPTV点播系统中的应用
4.1 引入ADO库文件
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,代码如下所示:
#import "c:\program files\common files\system\ado\msado15.dll"
no namespaces rename("EOF" adoEOF")
4.2 初始化OLE/COM库环境
因为ADO库是一组COM动态库,所以应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一般是在应用程序主类的InitInstance成员函数里用AfxOleInit()初始化OLE/COM库环境。
4.3 使用ADO基本接口
ADO库包含三个基本接口:ConnectionPtr、CommandPtr和RecordsetPtr,为了便于使用分别定义指Connection对象、Command对象和Recordset对象的指针,它们分别为m_pConnection、m_pCommand和m_pRecordset。下面介绍指针的定义和在VC 中的使用。
(1)创建Connection对象并连接数据库
①定义一个指向Connection对象的指针:ConnectionPtr m_pConnection;
②创建Connection对象实例:m_pConnection.CreateInstance("ADODB.Connection");
③连接并打开数据库。以下列举一些常用的连接方式:
为了统一编程和方便修改,我们创建通用数据连接文件(*.UDL),这样当数据源改变时,只需修改对应udl文件设置数据源,无需更改软件程序。下面是访问不同类型数据源设置ConnectionString的标准:
访问ODBC数据
"Provide=MSDASQL;DSN=dsnName;UID=username;PWD=userPassword;"
访问MS SQL数据库
"Provide=SOLOLEDB;Data Source=serverName;Initial Catalog=databaseName;
User ID=username;Password=userPassword"
下面代码示例就是使用mydata.udl(假设创建了该UDL文件)连接并打开数据库:
m_PConnection->ConnectionString="File Name=C:\mydir\mydata.udl"
m_PConnection->Open("","","",NULL);
Connection对象除Open方法外还有许多方法,我们先介绍Connection对象中两个有用的属性ConnectionTimeOut与State。
ConnectionTimeOut用来设置连接的超时时间,需要在Open之前调用。例如,设置超时时间为5秒:
m_pConnection->ConnectionTimeout=5;//设置超时时间为5秒
m_pConnection->ConnectionStrin2="File Name=C:\mydir\mydata.udl"
m_PConnection->Open(","","",NULL);
State属性指明当前Connection对象的状态,O表示关闭,1表示已经打开,我们可以通过读取这个属性来作相应的处理,例如:如果已经打开了连接则关闭它。
if(m_PConnection->State)
m_pConnection->Close();
利用Execute方法执行SQL命令:
Execute执行完后返回一个指向记录集的指针,下面我们给出具体代码并作说明。
variant t RecordsAffected;
///执行SQL命令:CREATE TABLE创建表格users,users包含四个字段:整型ID,字符串username,整型old,日期型birthday
m_pConnection->Execute("CREATE TABLE users(1D INTEGER. username
TEXT,old INTEGER,birthday DATETIME)",
关键词:ADO.net数据访问技术;SQL Server2000;IPTV点播系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30143-03
ADO.net Data Access Technology in the System of IPTV
DENG Ting1,2, WANG Jia-yang1
(1.School of Information Science and Engineering, Central Sourth University, Changsha 410083, China; 2.Hunan Vocational College of Science and Technology, Changsha 410118, China)
Abstract: This paper introduces the principle of ADO.net technology and object model, and IPTV system as an example to the ADO.net described in the Application Development System. The system speed data access, data exchange, open network performance and support, has obvious advantages, performance was much improved.
Key words: ADO.net data access technology; SQL Server2000; IPTV-on-Demand System
1 引言
IPTV全称是Internet Protocol Television,中文名称是因特网协议电视,或者是交互式网络电视。它主要是以机顶盒(STB Set-Top-Box)+电视机、电脑、手机、PDA等具有连接Intenret功能的设备作为用户终端,通过IP网为用户提供多媒体交互信息的通信系统。IPTV可提供多种多媒体服务功能,包括数字电视节目、可视IP电话、DVDNCD播放、互联网浏览、电子邮件以及多种在线信息咨询、娱乐、教育及商务功能。我们采用Visual C 6.0为开发平台,采用ADO技术开发了这套系统。Visual C 提供了简单、灵活、访问速度快、可扩展性强的开发技术, 而这也是Visual C 的优势所在。在Visual C 提供的几种主要、易用的方法当中。以ActiveX技术为基础的ADO.net是为Microsoft最新和最强大的数据访问接口OLE DB而设计的,它为OLE DB提供了简单一致的高层编程接口,在系统数据访问方面具有极大的灵活性,并且易于学习和运用。下面以IPTV点播系统为实例,阐述ADO.net技术在系统开发当中的应用。
2 IPTV点播系统
IPTV点播系统是充分利用B/S体系结构,建立一个实用、快速、实用方便的管理信息系统,把对各级服务器的操作和管理过渡到一个真正开放的、与平台无关的环境中。
2.1 系统结构介绍
IPTV点播系统中的内容管理系统实现对系统中媒体内容的集中管理,包括内容信息和内容分布状态的管理和维护功能。此系统采用B/S模式,服务器采用操作系统为Windows NT,客户机平台可以是Windows 9x,Windows NT等,数据库采用SQL Server 2000。系统的开发平台是Visual C (VC)6.0,利用它可以方便地开发C/S或者B/S模式的应用程序。VC 6.0具有多种数据库服务接口,但最具有竞争力的是ADO.net,本系统即采用ADO.net技术。
2.2 系统功能设计
本论文讨论IPTV点播系统中的内容管理模块的设计。包括如下:
(1)发布点类型管理;
(2)文件分发管理;
(3)发布点内容管理:
①发布点管理(启动禁用发布点、查看修改发布点、添加删除发布点);
②文件管理。
3 ADO.net技术及其应用
ADO.NET是基于.NET框架、面向分布式和以XML数据格式为核心的数据访问技术,它提供了一组数据访问服务的类,ADO.NET统一了数据容器类编程接口,无论编写何种应用程序都可以通过同一组类来处理数据。无论后端数据源是SQL Server数据库、Oracle数据库、其他数据库、XML文件,还是一个文本文件,都使用一样的方式来处理它们。同时,为了方便程序员使用ADO.NET,它还提供了一组丰富的控件,利用可视化方式开发数据库应用。
ADO. NET支持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。设计ADO.NET的目的是为了满足这一新编程模型的以下要求:具有断开式数据结构;能够与XML紧密集成;具有能够组合来自多个、不同数据源的数据的通用数据表示形式以及具有为与数据库交互而优化的功能,这些要求都是.NET Framework固有的内容。
ADO.NET包含两大核心控件,分别是.NET Framework数据提供程序和DataSet.NET Framework数据提供程序用于连接到数据库、执行命令和检索结果,它包括四个核心对象。Connection对象用于与特定的数据源建立连接。Command对象用于对数据源执行命令。DataReader对象用于从数据源中读取只向前的只读数据流,它是一个简易的数据集,另外一个数据集是DataSet。DataAdapter对象用于用数据源的数据填充DataSet数据集并解析更新数据集。DataSet是一个功能丰富、较复杂的数据集,它是支持ADO.NET的断开式、分布式数据方案的核心对象。DataSet表示包括相关表、主外键约束和表间关系在内的整个数据集。DataSet专门用来处理从数据源获得的数据,无论数据来自什么数据源,它都使用相同的方式操作数据。
通常,使用ADO.NET开发数据库应用程序应遵循以下几个步骤:
(1)选择所使用的数据源,即选择使用哪个.NET Framework数据提供程序;
(2)使用Connection对象建立与数据源的连接;
(3)使用Command对象完成对数据源的连接;
(4)使用数据集对获得的数据进行各种操作,即利用DataReader对象或DataSet对象;
(5)缓存数据;
(6)使用各种数据控件,如DataGrid控件显示数据。
4 ADO.net技术在IPTV点播系统中的应用
4.1 引入ADO库文件
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,代码如下所示:
#import "c:\program files\common files\system\ado\msado15.dll"
no namespaces rename("EOF" adoEOF")
4.2 初始化OLE/COM库环境
因为ADO库是一组COM动态库,所以应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一般是在应用程序主类的InitInstance成员函数里用AfxOleInit()初始化OLE/COM库环境。
4.3 使用ADO基本接口
ADO库包含三个基本接口:ConnectionPtr、CommandPtr和RecordsetPtr,为了便于使用分别定义指Connection对象、Command对象和Recordset对象的指针,它们分别为m_pConnection、m_pCommand和m_pRecordset。下面介绍指针的定义和在VC 中的使用。
(1)创建Connection对象并连接数据库
①定义一个指向Connection对象的指针:ConnectionPtr m_pConnection;
②创建Connection对象实例:m_pConnection.CreateInstance("ADODB.Connection");
③连接并打开数据库。以下列举一些常用的连接方式:
为了统一编程和方便修改,我们创建通用数据连接文件(*.UDL),这样当数据源改变时,只需修改对应udl文件设置数据源,无需更改软件程序。下面是访问不同类型数据源设置ConnectionString的标准:
访问ODBC数据
"Provide=MSDASQL;DSN=dsnName;UID=username;PWD=userPassword;"
访问MS SQL数据库
"Provide=SOLOLEDB;Data Source=serverName;Initial Catalog=databaseName;
User ID=username;Password=userPassword"
下面代码示例就是使用mydata.udl(假设创建了该UDL文件)连接并打开数据库:
m_PConnection->ConnectionString="File Name=C:\mydir\mydata.udl"
m_PConnection->Open("","","",NULL);
Connection对象除Open方法外还有许多方法,我们先介绍Connection对象中两个有用的属性ConnectionTimeOut与State。
ConnectionTimeOut用来设置连接的超时时间,需要在Open之前调用。例如,设置超时时间为5秒:
m_pConnection->ConnectionTimeout=5;//设置超时时间为5秒
m_pConnection->ConnectionStrin2="File Name=C:\mydir\mydata.udl"
m_PConnection->Open(","","",NULL);
State属性指明当前Connection对象的状态,O表示关闭,1表示已经打开,我们可以通过读取这个属性来作相应的处理,例如:如果已经打开了连接则关闭它。
if(m_PConnection->State)
m_pConnection->Close();
利用Execute方法执行SQL命令:
Execute执行完后返回一个指向记录集的指针,下面我们给出具体代码并作说明。
variant t RecordsAffected;
///执行SQL命令:CREATE TABLE创建表格users,users包含四个字段:整型ID,字符串username,整型old,日期型birthday
m_pConnection->Execute("CREATE TABLE users(1D INTEGER. username
TEXT,old INTEGER,birthday DATETIME)",