WINCC中使用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连接数据库

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(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主要包含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连接数据库是通过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#动态创建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数据库连接对象详解案例(适合初学者)

数据库连接对象详解(案例)注意:希望大家在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(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集合对象,其中包含了数据访问过程中发生的错误信息。
使用ADO操作数据库

使用ADO操作数据库ADO (ActiveX Data Objects) 是一种用于访问数据库的编程技术,它是微软开发的一种组件对象模型(COM)。
ADO 提供了一种统一的方法来访问各种类型的数据源,如关系数据库、Excel 表格、文本文件等。
通过使用 ADO,开发人员可以简化数据库操作,并提高代码的可重复性和可维护性。
ADO 可以在许多编程环境中使用,如 Visual Basic、ASP、C++等,并且可以与不同的数据库进行交互,如 SQL Server、Oracle、MySQL等。
ADO 使用了一种层次化的模型来表示数据库,即连接、命令、记录集和字段。
下面将详细介绍如何使用 ADO 进行数据库操作。
首先,我们需要建立与数据库的连接。
在 ADO 中,可以使用Connection 对象来实现。
连接字符串是连接到数据库所需的关键信息。
例如,在连接到 SQL Server 数据库时,连接字符串通常包含服务器名称、数据库名称、用户名和密码等信息。
以下是一个示例连接字符串的格式:```Provider=SQLOLEDB;Data Source=ServerName;InitialCatalog=DatabaseName;User ID=UserName;Password=Password;```接下来,使用 Connection 对象打开与数据库的连接:```vbDim conn As New ADODB.Connectionconn.Open "连接字符串"``````vbcmd.ActiveConnection = conn```在执行命令之前,我们需要创建一个 Recordset 对象来存储查询结果。
Recordset 对象可以看作是一个二维表,其中包含了从数据库中返回的数据。
以下是创建 Recordset 对象的代码:```vbDim rs As New ADODB.Recordsetrs.Open cmd, , adOpenStatic, adLockReadOnly```在获取了数据库查询结果后,我们可以使用 rs 对象来访问这些数据。
ADO连接数据库

主页 博客 相册 | 个人档案 | 好友
查看文章
ADO连 接 数 据 库
20091029 21:11
ADO 第一次 亲密接 触 ADO 开发实 践之一
一、ADO 简介 ADO(ActiveX Data Object) 是Microsoft 数据库应用程序开发的新接口,是建立在 OLE DB 之上的高 层数据库访问技 术,请不必为此担心,即使 你对OLE DB ,COM 不了解也能 轻松对付ADO, 因为它非常简单易用,甚至比 你以往所接 触的 ODBC API 、DAO 、RDO都要容易使用, 并不失灵活性。本文 将详细地介绍在VC 下如何使用 ADO 来进行数据库应用程序开 发,并给出示例代 码。 本文示例代 码 二、基本流程 万事开头难,任何一 种新技术对于初学者来说最重要的 还是“入门”,掌握其要 点。让我们来看看ADO 数据库开发的基本流 程吧! (1) 初始化COM 库,引入ADO 库定义文件 (2) 用Connection 对象连接数据库 (3) 利用建立好的 连接,通过Connection 、Command 对象执行SQL 命令,或利用 Recordset 对象取得结果记录集进行查 询、处理。 (4) 使用完毕后关闭连接释放对象。 准备工作 : 为了大家都能 测试本文提供的例子,我 们采用Access 数据库,您也可以直接在我 们提供的示例代 码中找到这个test.mdb 。 下面我 们将详细 介绍上述 步骤并给出相 关代码。 【1 】COM库的初始化 我们可以使用 AfxOleInit() 来初始化COM 库,这项工作通常在 CWinApp::InitInstance() 的重载函数中完成, 请看如下 代码: BOOL CADOTest1App::InitInstance() { AfxOleInit(); ...... 【2 】用#import 指令引入 ADO 类型库 我们在stdafx.h 中加入如下 语句:(stdafx.h 这个文件哪里可以找到 ?你可以在FileView 中的Header Files 里找到) #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF") 这一语句有何作用 呢?其最终作用同我 们熟悉的#include 类似, 编译的时候系统会为我们生成msado15.tlh,ado15.tli 两个 C++ 头文件来定义ADO 库。 几点说明: (1) 您的环境中msado15.dll 不一定在 这个目录下,请按实际情况修改 (2) 在编译的时候肯能会出现如下警告, 对此微软在MSDN 中作了说明,并建议我们不要理会这个警告。 msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned 【3 】创建Connection 对象并连接数据库 首先我们需要添加一 个指向Connection 对象的指针: _ConnectionPtr m_pConnection; 下面的代码演示了如何创建Connection 对象实例及如何连接数据库并进行异常捕捉。 BOOL CADOTest1Dlg::OnInitDialog()
通过ADO连接各种数据库的字符串

通过ADO连接各种数据库的字符串在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。
既然讲到ADO 数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。
ADO数据对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象(Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。
功能请参见附录1。
ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。
第一种:ODBC DSN-Less ConnectionsODBC Driver for Access ODBC Driver for dBASE ODBC Driver for Excel ODBC Driver for MySQL ODBC Driver for Oracle ODBC Driver for Paradox ODBC Driver for SQL ServerODBC Driver for SybaseODBC Driver for Sybase SQL Anywhere ODBC Driver for TextODBC Driver for TeradataODBC Driver for Visual FoxPro第二种:OLE DB Data Provider ConnectionsOLE DB Provider for Active Directory Service OLE DB Provider for DB2OLD DB Provider for Internet Publishing OLE DB Provider for Index ServerOLE DB Provider for Microsoft Jet OLE DB Provider for ODBC DatabasesOLE DB Provider for Oracle (From Microsoft) OLE DB Provider for Oracle (From Oracle) OLE DB Provider for Simple ProviderOLE DB Provider for SQL Server一、下面我就先讲利用ODBC DSN来访问数据库,要完成这项工作,必须先通过“控制面板”—“管理工具”—“ODBC数据源”来建立一个数据源名,例如叫做TestData_Resoure。
DI-DO连点说明

Step7和WinCC之间的变量传递是通过DB实现的,先把实际的输入、输出点复制到DB数据块里。
通过功能块将I0.0赋给
DB1.DBX0.0,以此类推,
将同一设备的输入、输出
点存入同一个DB块中
赋值功能块内部逻辑
在WinCC中,新建无符号16位变量,如图
地址填写相应的DB数据块,选择字,为16位,从DBW0开始,占DBW0和DBW1
画面连接变量
选择变量
选择连接第
几位
此处选“位”选择变量
选择该变量的第几位
此处注意,高低位是相反的
即DBX0.0~DBX0.7对应8~15位
DBX1.0~DBX1.7对应0~7位
DO变量的连接
出现此对话框后
单击“下一步”
选中按钮,双
击此项
选择需要的动作
点击“下一步”,选择复位或者选择置位,并选择变量
选择对应的位
此处的高低位也是相反的,同上
点击完成
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
ADO数据库连接方式

我们知道,在VB下进行基于ADO的编程相对比较简单,只要通过reference加载了适当的类型库后,就可以正常地调用ADO对象。
但是对于VC下的基于ADO的数据库开发就稍微复杂一些。
VC中实现对ADO操作通常有三种方法:?#import方法;?利用MFC OLE的ClassWizard;?通过Windows API中COM相关的函数。
在这三种方法中,#import是最方便的方法,它允许产生一个类似VB 的类结构,使程序开发变得很方便。
下面分别介绍这三种方法。
1.#import方法在#import方法中,需要提供所要包含的类型库的路径和名称,VC能够自动产生一个对GUIDs的定义,以及自动生成对ADO对象的封装。
对任何引用的类型库,VC会在编译的时候自动生成两个文件:?头文件(.tlh):包含了所列举的类型和对类型库中对象的定义;?实现文件(.tli):对类型库对象模型中的方法产生封装。
例如,在stdafx.h文件中增加对msado15.dd的#import之后,VC会产生msado15.tlh和msado15.tli两个文件。
#import能够使用一个新的类_com_ptr_t,它也被称为智能指针。
智能指针能够自动执行QuyerInterface、AddRef和Release函数。
下面的代码演示了如何使用#import在应用中实现对ADO的操作:#import “c:\program files\commonfiles\system\ado\msado15.dll” \no_namespacerename ( “EOF”, “adoEOF” )重命名EOF是必要的,因为典型的VC应用都已经定义了EOF作为常数-1。
通常来说,操作一个自动化对象需要定义和初始化一个用来操作的变量。
可以通过使用智能指针(_com_ptr_t)的构造函数传递一个有效的CLSID或者是PROGID,也可以通过_com_ptr_t::CreateInstance()方法来定义对象。
Ado数据库连接方法

Ado数据库连接方法一、#import语句来引用支持ADO的组件类型库要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll 的附属资源中,只需要直接用#import引用它既可。
可以直接在Stdafx.h文件中加入下面语句来实现:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。
当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。
#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。
语句no_namespace 说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。
二、初始化组件我们一般在应用程序的APP类的InitInstance()方法里进行初始化。
方法有两种:1、CoInitialize(NULL);在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。
2、AfxOleInit();在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结束时关闭COM的操作。
第一讲:用ADO技术实现对数据库的连接

第一讲:使用ADO技术实现数据库连接【ADO简介】ADO(ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。
使用ADO可以让你轻松的在你的程序中使用SQL语句对数据库进行操作。
【ADO技术使用步骤】第一步:使用连接对象(Connection)将应用程序和数据库进行连接第二步:使用连接对象或者命令对象(Command)执行数据库语句,若有查询的结果则保存在相关的记录集(Recordset)中第三步:使用完成数据库后,关闭数据库连接,释放相关的资源。
(因为ADO中的对象都是使用动态内存分配完成的,所以必须要释放,不然会占空内存)【使用ADO进行连接数据库的步骤】第一步:使用#import指令引入ADO驱动,ADO驱动的默认文件夹为:“C:\Program Files\Common Files\System\ado\”,文件名通常为“msado*.dll”(*代表的是版本,win7中通常为15)Tip:当引入ADO组件之后为了防止和其他的命名空间混合而造成混乱,故此需要作出no_namespace的声明,并且需要将EOF命名空间重新声明为adoEOF。
在引入文件之后请先运行你的程序否则会出现“无法打开文件msado15.tlh”之类的错误第二步:初始化Com组件编程环境Tip:由于ADO组件是COM组件,所以必须要在COM组件的环境下编程。
FAILED是系统自带的函数,是用于确定COM声明是否失败的函数,若声明成功则返回true,否则返回false。
第三步:新建连接指针Tip:通常在ADO中使用_ConnectionPtr类型新建连接指针,为了防止出现野指针的情况,所以通常在新建指针之后赋值为NULL,表示为一个空的连接指针。
这就相当于在应用程序和数据库之间创建了一个负责建立连接的岗位,而此时这个岗位并没有人上班,故此为空。
使用ADO操作数据库

使用ADO操作数据库ADO可以被用在许多不同的编程环境中,包括Visual Basic、C++、C#、ASP等。
使用ADO来操作数据库,首先需要建立数据库连接。
ADO提供了各种类型的连接对象(Connection Object)来访问不同类型的数据库,包括SQL Server、Oracle、MySQL等。
建立ADO数据库连接的基本步骤如下:1. 创建Connection对象。
2. 设置Connection对象的ConnectionString属性,指定连接字符串,包括数据库的服务器地址、用户名、密码等信息。
3. 调用Connection对象的Open方法,打开数据库连接。
连接字符串是一个包含各种参数和值的字符串,用于指定连接数据库所需的信息。
连接字符串的格式和内容根据使用的数据库类型而有所不同,下面是一个连接SQL Server数据库的示例连接字符串:"Provider=SQLOLEDB;Data Source=server_name;InitialCatalog=database_name;User ID=user_name;Password=password"执行SQL语句的基本步骤如下:ADO还提供了DataReader对象和Recordset对象来处理查询结果。
DataReader对象逐行读取查询结果,适用于一次性读取大量数据。
Recordset对象将查询结果存储在内存中,可以通过MoveNext方法逐行遍历结果。
使用DataReader对象读取查询结果的基本步骤如下:1. 执行查询语句,并将结果保存在DataReader对象中。
2. 使用DataReader对象的Read方法逐行读取结果。
3. 使用DataReader对象的GetString、GetInt32等方法获取每行数据的值。
使用Recordset对象处理查询结果的基本步骤如下:1. 执行查询语句,并将结果保存在Recordset对象中。
力控使用ado读取关系库数据案例说明

1.关系库以存在D盘下access为例,其他sql和mysql等同理,只是在链接时不同。
脚本是一样的。
2.以表1内容为例。
字段名是时间,批号,温度,压力。
最新一条记录为批号为2,温度
30,压力40.
需求为用力控的数据库能读取到这些参数并且显示
3.操作步骤如下
3.1首先在力控建立三个空点位,分别用来和批号,温度,压力匹配的点位。
无需任何
关联,空点位即可。
3.2第二步,在后台组件添加一个ado组件,用来和dcom-副本.mdb连接上。
3.3点击测试,显示成功即可。
命名好数据源名称
3.4选择对应的库和表,点击确定
3.5ado右边有数据表管理,在数据表绑定新增一个,名称自取(后面脚本会用到)其中,字段名就是我们需要读取的表中的字段名,数据类型根据实际情况,后面的变量名是双击进入选择,浮点型就选xx.pv,字符型和日期选择XX.DESC。
如下图所示。
3.6脚本
在进入程序时打开数据库和数据表
在界面上做好点位关联和一个读取按钮。
后期读取按钮脚本会根据实际情况放到周期执行,这样就可以不停自动刷新数据。
4.效果
运行无数据
点击读取数据
到此完成。
注意事项:1.绑定ado表时千万不要写错字段名,否则读取不到
2.打开数据库脚本要放到进入程序,不要一直执行,执行一次即可。
3、此案例是按照时间来获取数据,当然也支持复杂的根据时间和判断批次号等条件同时成立去获取数据
4.获取不到数据,就仔细检查四个脚本的返回数值,看看哪一步出的错误。
是不是sql脚本没写对。
利用ADO的Connection对象来连接数据库

利用ADO的Connection对象来连接数据库利用ADO的Connection对象来连接数据库作者:bengdeng | 来源:Excel吧 | 时间:2008-09-22 | 阅读权限:游客 | 会员币:0 | 【大中小】在SQL语言教程- 序中我们说到这一篇要介绍利用ADO的Connection对象来连接数据库,目地就是让大家了解后,就可以便于以后的其它SQL语言教程里的代码,大家可以动手运行一下,看一下效果,之后的大部份例子中,这篇文章介绍的都是要用到的,就像我们要使用Excel文件时,要先用Workbooks对象的Open方法打开Excel文件一样。
关于Workbooks对象的Open方法的帮助说明,大家可以参考一下:下面进入正题。
首先要说的是ADO是什么?ADO的全称是:Microsoft ActiveX Data Objects ,它使您的客户端应用程序能够通过OLE DB 提供者访问和操作数据库服务器中的数据。
它的主要优点是易于使用、速度快、内存支出低和占用磁盘空间少。
ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的主要功能。
第二个问题是如何使用ADO?ADO有不少版本,不同的电脑里可能就有不同的版本,在VBA中使用ADO的方法是,在VBE编辑器中工具菜单的引用项里,引用Microsoft activex date objects x.x,其中x.x为版本号,可能会因为你安装的office的版本不同而不同,我用的例子,大多引用了2.5版。
认识了ADO,那开始说Connection 对象,Connection 对象表示数据源的唯一会话。
ADO提供这个对象,来让我们连接数据库。
而Connection 对象的ConnectionString 属性,就是用来指示用于建立到数据源的连接的信息。
ConnectionString 属性有五个参数:参数 | 说明Provider= :指定用于连接的提供者的名称。
第7章ADO对象与数据库操作

第7章ADO对象与数据库操作ADO(ActiveX Data Objects)是一种用于访问数据库的技术,它允许开发者通过编程方式连接到数据库,并执行各种数据库操作。
ADO对象是ADO技术的核心,开发者可以使用ADO对象来连接到数据库,并执行查询、插入、更新和删除等数据库操作。
本章将详细介绍ADO 对象以及其在数据库操作中的应用。
ADO对象分为三个级别:连接级别、命令级别和记录级别。
连接级别的ADO对象用于连接到数据库,命令级别的ADO对象用于执行SQL语句,记录级别的ADO对象用于处理查询结果。
在连接级别中,最重要的ADO对象是连接对象(Connection Object)。
连接对象用于建立与数据库的连接。
使用连接对象,开发者可以指定连接字符串、打开和关闭连接,以及设置连接的属性和选项。
连接字符串是连接对象的重要参数,它用于指定数据库的位置、登录名和密码等信息。
连接字符串的格式因数据库类型而异,以下是一个连接SQL Server数据库的连接字符串示例:```vba"Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDatabase;User Id=myUsername;Password=myPassword;"```连接对象的打开和关闭方法可用于连接到数据库和断开与数据库的连接。
打开连接时,ADO对象将尝试与数据库建立连接;关闭连接时,ADO 对象将断开与数据库的连接。
连接对象的属性和选项用于设置连接的行为和特性,例如超时时间、数据提供程序和事务支持等。
设置这些属性和选项可以影响到数据库操作的执行效率和结果。
命令对象的Execute方法用于执行SQL语句,返回查询结果或受影响的记录数。
开发者可以通过参数化查询来避免SQL注入等安全问题,并提高查询的性能。
命令对象还可以设置一些属性,如超时时间、是否使用缓存和命令类型等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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中如何使用方法,欢迎交流学习。