WINCC中使用ADO对象连接数据库 例子 常用属性 方法

合集下载

ADO连接数据库

ADO连接数据库

ADO数据库编程中大型的数据库管理信息系统(MIS)的开发,一般很少用VC来完成(因为开发效率低,不过运行效率很高),而是使用VB,C#,Java等开发效率较高的语言。

但小型MIS系统完全可以用VC来实现。

下面讲解VC中访问数据库的基本技术。

一、四种数据库访问技术●ODBC(Open Database Connectivity)开放式数据库连接,是一种用来在数据库管理系统(DBMS)中存取数据的标准应用程序接口。

有ODBC API和MFC ODBC两种开发技术。

●DAO(Data Access Object )即数据访问对象集,是Microsoft提供的基于一个数据库对象集合的访问技术。

和ODBC 一样,他们都是Windows API的一部分,可以独立于(DBMS)进行数据库的访问。

DAO跟ODBC的区别是:访问机制不同!ODBC工作依赖于数据库制造商(MS SQL Server,Oracle,Sybase等)提供的驱动程序。

使用ODBC API的时候,Windows的ODBC管理程序,把对数据库的访问请求传递给正确的驱动程序,驱动程序再使用SQL语句指示DBMS完成数据库访问工作。

DAO则绕开中间环节,直接使用数据库引擎(Microsoft Jet Database Engine)提供的各种对象进行工作。

速度比ODBC快。

●OLE DB(Object Link and Embedding Database)非常底层,基于COM接口技术;功能强大灵活,但编程非常非常非常麻烦,使用ADO 只需要3-5行代码的事情,用OLEDB却需要将近200-300行代码才能完成。

WinCE目前不支持ADO,但支持OLEDB。

推荐阅读文章:VC++实战OLEDB编程(一)至(九)/blog/static/571534632008101083957499/●ADO(ActiveX Data Object)是建立在OLE DB之上的高层数据库访问技术,是对OLEDB的封装,微软为我们提供了丰富的COM组件(包括ActiveX)来访问各种关系型/非关系型数据库。

使用ADO连接数据库

使用ADO连接数据库
• Provider特性:它指定用于连到数据的OLE
DB Provider的名称(Sql Provider不需要)
• Data Source 特性:它指定数据库的位置,既可 以是 Access 数据库的路径,也可以是 SQL Server或Oracle数据库所在计算机的名称。
• User ID和Password特性:它们指定用户名和该 数据库的有效帐户密码。
cn.Open (); 以上数据库是SQL SEVER身份验证登录的。
• 4.打开和关闭连接
• 如前所述,Open 方法和Close方法不带参 数:cn.open();cn.close();
5、State属性和StateChange事件
(1) State属性:指示数据库连接的当前状态。它可以是 下列ConnectionState枚举值中一个或者多个值的组合: Closed、Connecting、Open、Executing、Fetching和 Broken。通常情况下,需检查 State 属性以确保打开一个 关闭着的连接或者关闭一个已打开的连接,如下列代码所 示:
Command对象、DataReader对象和DataAdapter对象的模 型
表一 两种数据提供组件中的对象
数据提供组件 Connection Command DataAdapter DataReader
SQL Server SqlConnection SqlCommand SqlDataAdapter SqlDataReader
OLE DB OleDbConnection OleDbCommand OleDbDataAdapter OleDbDataReader
表二 System.Data的几个常见的子类
类 名称 DataSet DataTable DataView DataRow DataTableCollection DataRowCollection DataColumn DataException

ADO操作数据库的方法步骤

ADO操作数据库的方法步骤

ADO操作数据库的方法步骤ADO(ActiveX Data Objects)是一种用于操作数据库的技术,它提供了一组对象和方法,可以有效地与数据库进行交互。

ADO是使用OLE DB (Object Linking and Embedding Database)技术来实现的,它可以连接多种不同的数据库,包括SQL Server、Oracle、Access等。

下面是使用ADO操作数据库的方法步骤。

1.引用ADO库要使用ADO操作数据库,首先需要在项目中引用ADO库。

可以在编程环境中的“引用”或者“项目属性”中添加对ADO库的引用,确保可以使用ADO库提供的对象和方法。

2.创建连接对象创建一个ADO连接对象以连接到数据库。

连接对象是ADO的核心对象之一,它提供了与数据库建立连接和断开连接的功能。

可以使用Connection对象的构造函数或者使用CreateObject函数创建一个连接对象。

3.打开连接使用连接对象的Open方法来打开连接。

在打开连接之前,需要设置连接字符串(Connection String),连接字符串包含了连接数据库的详细信息,比如数据库的类型、服务器地址、用户名、密码等。

可以使用连接字符串构造函数或者直接设置连接对象的ConnectionString属性来设置连接字符串。

4.创建命令对象5.设置命令类型和SQL语句6.执行命令使用命令对象的Execute方法来执行命令。

如果SQL语句是查询语句,可以使用命令对象的Execute方法或者ExecuteReader方法执行命令,并使用记录集对象来获取返回的数据。

如果SQL语句是更新、插入或删除语句,可以使用ExecuteNonQuery方法来执行命令,该方法返回受影响的行数。

7.处理返回的数据如果执行的是查询语句,可以使用记录集对象来获取返回的数据。

可以使用记录集对象的MoveFirst方法将指针移动到第一条记录,然后使用各种属性和方法来访问记录集中的数据,比如Fields,RecordCount,EOF等。

Ado连接及基本用法

Ado连接及基本用法

ADO对象模型ADO主要包含7个对象,3个独立对象和依赖独立对象才能使用的4个非独立对象。

1、Connection:连接对象,用于创建数据源连接。

在使用其他对象之前必须先建立数据源连接,然后在连接对象上创建和使用其他对象。

2、Command:命令对象,用于执行动作查询,比如创建/删除数据库、执行返回数据集、删除记录等操作。

3、Recordset:记录集对象,保存来自基本表或命令对象返回的结果。

使用记录集对象几乎可以完成所有的数据集操作。

4、Field:字段对象,依赖于记录集对象使用,可使用Fields集合获得记录集汇总每个字段的信息。

5、Property:属性对象,每个连接对象、命令对象、记录集对象以及字段对象都有一个属性对象集合。

使用属性对象可以访问特定对象的主要信息,例如获得数据库中表的名称。

6、Parameter:参数对象,依赖于命令对象使用,用于为参数查询提供数据。

同时使用参数对象和命令对象,可使数据库队查询进行预编译,从而提高执行速度。

7、Error:错误对象,依赖连接对象使用。

使用Connection对象Connection对象主要用于创建数据库连接,任何数据库访问操作都建立在连接的基础上。

1、定义Connection对象建立ADO引用后,就可定义(声明)Connection对象,然后利用Connection对象创建Recordset对象或Command对象。

下面的语句定义并实例化一个Connection对象:Dim objCn As ConnectionSet objCn = New Connection也可直接实例化Connection对象,例如:Dim objCn As New Connection2、指定数据提供者实例化Connection对象后,就必须通过Provider属性指定一个数据提供者(可理解为驱动程序),例如:objCn.Provider=”SQLOLEDB” `指定数据提供者SQLOLEDB为Microsoft SQL Server OLE DB 数据提供者,用于访问SQL Server 数据库。

ADO连接数据库方法

ADO连接数据库方法

使用ADO连接数据库是通过Connection对象的Open方法实现的语法是:Connection.Open erID.password,openoptions参数说明:Connectionstring:(可选)字符串,包含连接信息userID:(可选)字符串,包含连接时所使用的用户名称password:(可选)字符串,包含建立连接时多用密码openoptions:(可选)ConnectoptionEnum值,如果设置为adConnectoAsync,则异步打开连接。

当连接可用时将产生ConnectComplete事件具体的实现方法如下:void CConnectDlg::OnInitADOConn(){try{//创建连接对象实例m_pConnection.CreateInstance("ADODB.Connection");//设置连接字符串CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\uid=;pwd=;DBQ=shujuku.mdb;";//使用Open方法连接数据库m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);}catch(_com_error e){AfxMessageBox(e.Description());}}void CConnectDlg::ExitConnect(){//关闭记录集和连接if(m_pRecordset!=NULL)m_pRecordset->Close();m_pConnection->Close();我们本次的话题就是——在VC中使用ADO(ActiveX Data Objects)。

Visual C++提供了多种数据库处理方法,我们既可以直接从DAO SDKs(Data Access Objects Software Development Kits)或ODBC SDKs(Open Database Connectivity)中调用数据库API函数,也可以选择使用MFC(Microsoft Foundation Class Library),即使用MFC DAO和MFC ODBC类来处理数据库API。

C#ADO方法连接数据库

C#ADO方法连接数据库

用C#动态创建Access数据库记得以前要动态的创建Access数据库的mdb文件都是采用DAO,用VC开发,一大堆的API,很是麻烦。

现在好像也鲜有人提起DAO。

其实动态的创建mdb数据的最简单的方法还是ADOX。

用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create 方法就可以了,如下:ADOX.Catalog catalog = new Catalog();catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;JetOLEDB:Engine Type=5");仅仅两行代码就搞定了。

下来我主要介绍一下在c#中的实现细节。

首先你要添加引用,在“Add reference”对话框里切换到Com页面,选择“Microsoft ADO Ext. 2.8 for DDL and Security”,然后点击OK。

在文件的开头using ADOX名字空间。

然后添加如上面所示的代码就可以成功的创建Access 数据库了,代码如下:using System;usingSystem.Collections.Generic;usingSystem.Text;using ADOX;namespace testADOX{class Program{static void Main(string[] args){ADOX.Catalog catalog = new Catalog();catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;JetOLEDB:Engine Type=5");}}}创建了数据库文件是没有实际用处的,我们还要创建表。

在创建表之前,我们必须连接目标数据库,用来连接数据的桥梁居然是ADO的Connection对象,所以我们不得不再次添加对ADO的应用,在添加引用对话框中切换到Com页面,选择“Microsoft ActiveX Data Objects 2.8 Library”,然后点击OK。

ADO数据库连接对象详解案例(适合初学者)

ADO数据库连接对象详解案例(适合初学者)

数据库连接对象详解(案例)注意:希望大家在copy代码的时候注意命名空间的引用,因此需要加上以下语句:using System.Data;using System.Data.SqlClient;SqlConnetion对象:主要是连接程序和数据源的“桥梁”,要存取数据源中的数据,首先要建立程序和数据源之间的连接。

1.混合模式string connStr="server/Data Source=(local);uid=sa;pwd=;database/Initial Catalog=demo"; SqlConnection conn = new SqlConnection(connStr);或连起来写:SqlConnection conn = new SqlConnection("server=(local);uid=sa;pwd=;database=demo");2.使用Windows验证方式:string connetionString="server=(local);database=demo;trusted_connetion/Intergtated Secrity=true";SqlConnection conn=new SqlConnection(connetionString);SqlConnetion对象实例演示:<%@Import Namespace="System.Data" %><%@Import Namespace="System.Data.SqlClient" %><script language="C#" runat="server">public void Page_Load(object sender,EventArgs e){string connStr = "server=.;database=demo;uid=sa;pwd=xushouwei";//SqlConnection conn = new SqlConnection("server=.;database=demo;uid=sa;pwd=xushouwei");SqlConnection conn = new SqlConnection(connStr);conn.Open();Response.Write("连接成功!");}</script>Command对象:主要用来对数据发出一些指令,通过Command对象可以对数据库进行查询、增加、修改、删除以及调用数据库中的存储过程等操作。

ADO对象方法属性详解

ADO对象方法属性详解

ADO对象方法属性详解ADO(ActiveX Data Objects)是用于访问数据库的一组组件和技术,它提供了一种统一的方法来访问不同的数据源,如关系型数据库、Excel文件、文本文件等。

ADO包含了许多对象、方法和属性,以下是一些常用的ADO对象、方法和属性的详细解释。

一、ADO对象:1. Connection(连接对象):用于与数据库建立连接,并管理与数据库的通信。

2. Recordset(记录集对象):用于存储和访问数据库中的数据,可以通过执行SQL查询语句来检索数据。

二、Connection对象的常用方法:1. Open:打开与数据库的连接。

2. Close:关闭与数据库的连接。

三、Connection对象的常用属性:1. ConnectionString:设置或返回连接字符串,用于指定要连接的数据库及其相关的连接参数。

2. State:获取连接的当前状态(例如已打开、已关闭)。

四、Recordset对象的常用方法:1. Open:打开查询结果集,可以通过执行SQL查询语句或调用存储过程来获取数据。

2. Close:关闭结果集。

五、Recordset对象的常用属性:1. EOF(End of File):判断当前记录是否为结果集的最后一条记录。

2. BOF(Beginning of File):判断当前记录是否为结果集的第一条记录。

3. RecordCount:获取结果集中记录的数量。

4. Fields:获取一个集合对象,该集合包含了结果集中的字段。

5. AbsolutePosition:获取或设置当前记录的绝对位置。

6. Source:获取或设置返回记录集的源(如SQL查询语句)。

六、其他常用方法和属性:1. Execute方法:用于执行SQL查询语句,并返回一个记录集对象。

2. CreateParameter方法:用于创建参数对象,以便在执行存储过程时传递参数。

3. Errors属性:返回一个Errors集合对象,其中包含了数据访问过程中发生的错误信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。

以下以报警记录为例。

一、了解ADO对象1.1ADO对象操作数据库是微软提供的一种接口。

1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料)ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象)eg:dim conn,oRs,oComSet conn = CreateObject("ADODB.Connection") 'Connection对象Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordset对象Set oCom = CreateObject("mand") 'mand命令对象二、对象2.1 Connection 对象2.1.1 open 方法语法connection.Open ConnectionString,UserID,Password,OpengOptions说明ConnectionString:可选参数,字符串,包含连接信息UserID:可选参数,字符串,包含建立连接时候用的用户名Password:可选参数,字符串,包含建立连接时候用密码OpenOptions:可选参数,连接打开方式eg1:(连接数据库代码方法1,仅连接部分代码)Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.ConnectionString ="Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"conn.CursorLocation = 3conn.Openeg2:(连接数据代码方法2,连接部分代码)Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"2.1.2 close方法connection.closeeg:Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"'这里写上对数据库查询,修改等操作conn.close2.1.3 execute方法语法Cn.Execute strCommand,[IngRowsAffected[,IngOptions]]说明strCommand:可以是查询语句、表名、存储过程名等IngRowsAffected:可选参数,返回Insert、Update 、Delete查询语句后所影响的数目 IngOptiongs: 参数可以如下adCmdUnkown:Command类型未定,由数据源提供者去判断Command语法AdCmd是和对象类型相应的文件名称adCmdStoredProc:Command是存储过程名称adCmdTable:Command是能产生内部SELECT*FROM TableName查询的表名称adCmdTableDirect:Command是能直接从表中获取行内容的表名称adCmdText:Command是一条SQL语句eg:Dim conn,oCom,oRsDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"Set oCom = CreateObject("mand")Set oRs = CreateObject("ADODB.Recordset")mandType=1Set oCom.ActiveConnection = connmandText ="ALARMVIEW:Select * FROM AlgViewCHT "Set oRs = oCom.Execute'以上4句还可以写成 Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")conn.close2.2 Recordset对象Recordset 常用属性RecordsetCount:返回当前记录的数目BOF:表示当前记录位于该对象第一个记录之前EOF:表示当前记录位于该对象最后一个记录之后。

movefirst:移动到第一条movenext:移动到下一条movelast:移动到最后一条eg:Dim conn,oCom,oRsDim mDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"Set oRs = CreateObject("ADODB.Recordset")Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")m = oRs.RecordCountmsgbox "报警行数"&mconn.close2.2.1 Open方法语法recordset.Open Source,ActiveConnection,CursorType,LockType,Options说明Source:可选参数,变体型,计算Command对象的变量名、SQL语句、表名、存储过程调用或持久的 Recordst文件名ActiveConnection:可选参数,变体型,计算有效Connection对象变量名或字符串,包含 ConnectionString参数CursorType:可选参数,用于确定数据提供者打开Recordset时应该使用游标类型,类型如下adOpenForwardOnly:打开仅向前类型游标(默认类型)adOpenKeyset:打开键集类型游标adOpenDynamic:打开动态类型游标adOpenStatic:打开静态类型游标注:具体解释请参考百度结果,这里我们主要讲解应用方面的东西。

LockType:可选参数,确定数据提供者打开Recordset时应该使用的锁定(并发)类型的LockTypeEnum 值,类型如下adLockReadOnly:只读,默认值adLockPessinistic:保守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时候锁定数据源的记录来完成。

adLockOptimistic:开放式锁定,提供者试用开放式锁定,只在调用Update方法时才锁定记录。

adLockBatchOptimistic:开放式批更新,用于批更新模式Optiongs:可选参数,长整型,用于指示数据提供者如何计算Source参数,或从以前保存的Recordset 中恢复Recordset(以下省略参数类型讲解)eg:Dim conn,oRs,oComDim m,iDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"Set oRs = CreateObject("ADODB.Recordset")oRs.open "ALARMVIEW:Select * FROM AlgViewCHT ",connm = oRs.RecordCountMsgBox "报警行数"&moRs.Closeconn.Close2.3 Command对象2.3.1 对象属性说明ActiveConnection:使打开的数据库连接与Command对象关联CommandText:可执行的命令文本,如SQL语句CommandType:指定命令类型以优化性能CommandTimeout:设置提供者等待命令行的秒数以下摘自西门子连通性文档过程值记录集结构报警过程值归档:Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "TAG:R,'PVArchive\Tag1','0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'"报警消息归档:Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "ALARMVIEW:Select * FROM AlgViewEnu"用户归档Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "SELECT * FROM UA#Test"关于数据集可参考《ConnectivityPackInfoSystem_zh-CHS》文档其中非常详细如果需要了解更多的方法,属性,请查阅ADODB手册上面非常的详细,本文并非专门讲解ADODB对象的文章而是重点在讲WINCC中如何使用方法,欢迎交流学习。

相关文档
最新文档