Ole_Db
达梦接口编程实例——OLEDB篇
达梦接口编程实例——OLEDB篇OLE DB是Microsoft通用数据访问策略的重要组成部分。
它允许高效地访问任何数据源,为用户提供了一种统一的方法来访问所有不同种类的数据源,不论是数据库数据源,还是表格文件数据源都可以通过它来查看,而且,它可以在不同的数据源中进行数据转换。
OLE DB的这种灵活性给编程人员带来了极大的方便,客户端的开发人员在进行数据访问时只需把精力集中在很少一些细节上,而不必弄懂大量不同数据库的访问协议。
DM OLE DB Provider是武汉华工达梦数据库公司为使达梦数据库(DM DATABASE,以下简称DM)实现OLE DB数据访问接口,符合一致数据访问标准而自行设计并实现的OLE DB提供者组件程序。
DM OLE DB Provider直接调用DM API编程接口访问DM数据库,OLE DB Consumer程序可以通过DM OLE DB Provider提供的OLE DB接口来访问数据库。
OLE DB Consumer程序既可以是直接调用OLE DB接口的应用程序,也可以是调用OLE DB接口为实际应用提供高层接口的组件程序(例如ADO),如图所示:本文通过DM OLE DB接口连接达梦数据库,用一个实例来分步介绍OLE DB API编程方法。
DM OLE DB编程步骤1).初始化COM环境2).连接数据源3).创建会话,执行命令4).处理结果集5).清除对象1 初始化COM环境由于OLE DB是一个COM接口,所以在使用任何OLE DB对象前要初始化COM环境,可以通过一个简单的调用来实现,如下所示:HERULT hr=CoInitialize(NULL); //初始化COM环境在大多数情况下,最好调用CoGetMalloc函数,获得指向默认的OLE任务内存分配器的指针,如下所示:CoGetMalloc(MEMCTX_TASK,&g_pIMalloc));//获取Imalloc为以后使用2 连接数据源1).创建一个DM OLE DB提供程序实例创建一个DataSource对象,可以通过调用CoCreateInstance方法来直接产生一个DataSource对象, CoCreateInstance方法的句法如下:STDAPI CoCreateInstance( REFCLSID rclsid,LPUNKNOWN pAggInterface,DWORD dwClsContext,REFIID riid,LPVOID* ppInterface);Rclsid 指定要使用的COM对象的类标识符,DM OLE DB的类标识符是CLSID_DM,定义值是{0x83CD9378, 0x328B, 0x45D9, 0x87AD, {0x8F, 0xAA, 0xB3, 0xF0, 0x9E, 0x72}};DM OLEDB Provider的PROGID 是DMOLEDB,可以先通过CLSIDFromProgID函数,将ProgID 求出CLSID。
ADO组件
ADO组件ADO全称为:ActiveX Data Object。
用户可能通过ADO组件来存取数据。
ADO通过微软OLEDB数据访问技术来为众多数据提供一个高级界面。
OLEDB是Microsoft提出的数据访问的系统的接口。
OLEDB是一个开放的技术体系,它继承了Microsoft较早提出的ODBC,目的在于提供一个能跨平台访问数据库的数据库接口。
OLEDB 数据访问技术可以让用户快速地访问任何数据源,包括关系数据库和非关系数据库、电子邮件和文件系统、文本和图像以及用户自定义的商业对象等多种数据源。
组件和主要功能分别是:1、ADOConnection用于建立ADO数据库的永久连接,并支持事务功能。
2、ADODataSet用于从ADO数据库的一个或多个数据表检索数据,并允许数据控制组件通过与DataSource 组件相连来操纵该数据,它是用于检索和操作数据库中数据的主要组件。
3、ADOTable用于检索ADO数据库中的一个单一数据表生成的数据集,并允许数据控制组件通过与DataSource组件相连来操纵该数据集。
4、ADOQuery使用合法的SQL语句来检索物理数据表中的数据集,并允许数据控制组件通过与DataSource 组件相连来操纵该数据表。
5、ADOStoredproc用于执行存储过程,该组件可以实现执行检索数据或执行SQL语言的DLL语句的存储过程。
6、ADOCommand用于向ADO数据库直接发送一条SQL命令。
这些命令不返回结果集。
7、RDSConnection用于将Recordset对象从一个过程或机器传递到另一个过程或机器时管理数据的汇集。
它可以用来建立使用商业对象如应用服务器的多层客户/服务器应用程序。
ADOConnection组件详解1、常用属性:(1)Attributes属性属性声明如下:_property TxcatAttributes Attributes={read=GetAttributes,write=SetAttributes,default=0};这个属性用于设置与ADO数据库的连接特性。
什么是OLE DB
OLE的意思是"对象链接嵌入"。
而db是指 DataBase,也就是数据库的意思。
整个意思就是指对象链接嵌入型的数据库软件。
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――有许多种办法可以连上一个数据库. 你可以用System DSN, DSN-less连接或是本地的OLEDB provider. OLEDB? 这是什么什么玩艺儿? 也许你们中的许多人以前没有听说过. 要回答这个问题,我们先得回顾一下数据库连接的历史.早期的数据库连接是非常困难的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了. 也就是现在的ODBC(Open Database Connectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库.ODBC兼容的数据库包括Access, MS-SQL Server, Oracle, Informix等.但ODBC并不是完美无缺的,它仍然含有大量的低级的调用,开发ODBC应用程序仍较困难. 开发者不得不将大量的精力花在底层的数据库通信中,而不能专注于他们所要处理的数据. 后来微软提出了一个解决方案: DAO(Data Access Objects). DAO的代码看起来象这样:objItem.AddNew = "Chair"objItem.Price = 10objItem.Update你也许看过DAO的代码. 后来DAO演变为RDO(Remote Data Objects, 为分布式数据库体系设计), 再后来是ADO. 尽管它们都有各自的不足之处. 根据微软的说法,"ODBC提供了本地SQL数据的存取,DAO提供了高级的数据对象". DAO和RDO都需要数据以SQL(Structured Query Language)的格式存储. 针对这些缺陷,微软提出了OLEDB,一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像). OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的"应用程序". 你的ADO调用先被送到OLEDB,然后再交由ODBC处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升. 那我们该如何直接连接到OLEDB呢?要想直接连到OLEDB层,你必须改变你的connection对象连接字符串. 先用老办法创建一个connectiong对象:Dim objConnSet objConn = Server.CreateObject("ADODB.Connection")接下去,我们不用常规的类似DSN=pubs or DRIVER={MS SQL-Server};UID=sa;PWD=;DATABASE=pubs;SERVER=myMachine的连接字符串,而采用下面的连接字符串:objConn.ConnectionString = "Provider=ProviderName; DataSource=DatabaseSource; Initial Catalog=DatabaseName; User ID=UserID; Password=Password"对于SQL:ProviderName = SQLOLEDBData Source = Server NameInitial Catalog = Database Name对于Access:ProviderName = Microsoft.Jet.OLEDB.3.51Data Source = Full path to .MDB file下面让我们来看两个例子,一个是针对Access的,还有一个是针对SQL的. 如果你的连接SQL 的DSN-less连接串是这样的:DRIVER={MS SQL-Server};UID=sa;PWD=;DATABASE=pubs;SERVER=myMachine那么直接连接到OLEDB的连接字符串应该是这样的:Provider=SQLOLEDB; Data Source=myMachine; Initial Catalog=pubs; UserID=sa; Password=让我们来看看Access,如果你的Access的连接字符串是:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\users.mdb那么直接连接到OLEDB的连接字符串应该是这样的:Provider=Microsoft.Jet.OLEDB.3.51; DataSource=c:\inetpub\wwwroot\users.mdb就是这么简单,挺棒的吧?这很重要吗?现在你也许对为什么要学习这种新的数据库连接方法感到有些儿迷惑,为什么不走标准的DSN-less/System DSN路子呢? 让我来告诉你为什么. 据Wrox出的ADO 2.0 Programmer's Reference一书中的测试,用OLEDB连接而不是DSN或DSN-less的连接会得到的性能提升如下:性能比较SQL AccessOLEDB DSN OLEDB DSNConnection Times: 18 82 Connection Times: 62 99Iterating through 1,000 Records Times: 2900 5400 Iterating through1,000 Records Times: 100 950我希望这篇文章能对你有点儿帮助,我相信你会对你的连接SQL及Access数据库的方法做一些小小的改进的. ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――主题:什么是ADO,ODBC,OLE DB,它们之间有什么关系?(总是对它们理解不透)看了一些资料还是不太清楚,所以请大家给说说回复人: julyclyde(ASP版社区之星) ( ) 信誉:144 2002-04-10 13:18:41Z 得分:0ADO是一系列对象用于访问数据库的。
Access数据库提示OleDb...
Access数据库提⽰OleDb...说明: 执⾏当前 Web 请求期间,出现未处理的异常。
请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: ⽆法从指定的数据表中删除。
源错误:⾏ 37: mandText = sqlstr;⾏ 38: //comm.Prepare();⾏ 39: cout = comm.ExecuteNonQuery();⾏ 40:⾏ 41: conn.Close();源⽂件: d:\SOVO验收代码\Base\App_Code\JetAccess.cs ⾏: 39[OleDbException (0x80004005): ⽆法从指定的数据表中删除。
]System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108JetAccess.Execute(OleDbParameter[] parameters, String sqlstr) in d:\SOVO验收代码\Base\App_Code\JetAccess.cs:39 NewsData.DeleteNews(Int32 id) in d:\SOVO验收代码\Base\App_Code\NewsData.cs:29_Default.GridView1_RowDeleting(Object sender, GridViewDeleteEventArgs e) in d:\SOVO验收代码\Base\System\Default.aspx.cs:46System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e) +133System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +604System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)+1155System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +199System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +174System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102解决⽅法如下:在数据⽂件*.mdb上右键打开属性对话框,在'安全'标签下需要添加IUSR_XXX(XXX为你的机器名),也就是添加Internet Guest Account帐户,再将此帐户的权限设为可读,可写.(原来这么简单就解决了的问题,我靠:) )如果在右键属性对话框内找不到'安全'标签,需要将⽂件夹选项下的视图内的'使⽤简单⽂件共享(默认)'的勾去掉.原因:有⼏个主要的错误原因:这个错误发⽣在当你的程序试图执⾏更新数据库或其它类似操作时。
OLEDB技术及其在VC数据库开发中的应用
Mcc p e pit so2 N. 2 8 io m ur pci V14 o , 0 ro tA l o . , 8 0 an
文章编号 :1 0 — 5 X 2 0 ) - 0 3 0 7 7 7 (0 8 8 0 6 — 2 0
学 园 习 地
非直接对数据源发 出指令 , 而是通过 O EDB接 口与数据提 L
供者 进行交互 。数据提供 者从数据 源取得所要 查询的数据 时, 由数据使用者将数据从接 口取 出并使用 。 在这些操作中, 数据使用者和数据提供者都不必知道对方 的具体应用, 而只 需要对接 口进行操作 ,这样简化 了程序的设计 。
21 OL EDB应 用 程 序 的结 构 从 结 构 上 看 , 用 O ED 数 据 库 开 发 接 口的 应 用程 序 使 L B 可 以分 为 3类 , E D 数据 提 供 程序 ( E D t OL B OL B Da a
模型
C M( o o et bet Mo e)。 这 种 接 口 是 O C mp n n O jc d 1
在于对所有数据库文件提供了一个统一的调用接 口, 既可 它 以访 问关系数据库,又可 以访问非关系数据库。 直接使用 O E DB 的对象和接 口设计数据库应用程序 L 需要书写大量的代码。为 了简化设计 , VC提供 了A兀J 模板
用于设计 OL EDB数据应用程序和数据提供程序 。 利用 A L T 模板可 以很容易地将 OL B与 MF ED C结合起来,使数据库 的参数查询等复杂的编程得到简化。MF 提供 的数据库类 C 使 O EDB 的编 程 更 具 有 面 向对 象 的特 性 。V sa + 提 供 L i l + u c
微 电 应 型 脑 用
VB与数据库连接的几种方法
VB与数据库连接的几种方法在VB中,与数据库进行连接的方式有多种,可以根据不同的需求选择不同的方法。
下面将介绍几种常用的连接数据库的方法。
1.使用ADO连接数据库:ADO(ActiveX Data Objects)是一种用于连接数据库的COM组件,它提供了一套广泛的API,用于与各种数据库进行交互。
使用ADO连接数据库的基本步骤如下:(1)引入ADO组件:在VB的项目中,需要通过引入ADO组件来使用ADO的功能。
在“项目”菜单中选择“引用”,然后勾选“微软ActiveX数据对象库”即可。
(2)创建连接对象和命令对象:使用ADO连接到数据库需要创建两个核心对象,即连接对象和命令对象。
连接对象用于建立与数据库的连接,命令对象用于执行SQL语句。
(3)打开数据库连接:使用连接对象的Open方法来打开数据库连接。
(4)执行SQL语句:使用命令对象的Execute方法执行SQL语句,可以执行查询、插入、更新、删除等操作。
(5)关闭数据库连接:使用连接对象的Close方法关闭数据库连接。
2.使用ODBC连接数据库:ODBC(Open Database Connectivity)是一种通用的数据库访问接口,可以连接各种类型的数据库,包括Access、SQL Server、MySQL等。
VB提供了对ODBC的支持,可以使用ODBC连接数据库。
(1)设置ODBC数据源:在Windows的“控制面板”中选择“管理工具”->“ODBC数据源”,配置一个ODBC数据源,指定要连接的数据库。
(2)在VB中连接数据库:在VB中使用ODBC连接数据库需要通过ODBC数据源名来建立连接。
例如:```Dim conn As New ADODB.Connectionconn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\myDB.mdb;Uid=Admin;Pwd=; "conn.Open```(3)执行SQL语句:通过ADO连接对象执行SQL语句,与使用ADO 连接数据库的方式相同。
ODBC和ADO区别
统中必须有DBMS,但不需要驱动程序,不需要注册数据源,所以具有很好的可移植性。
VC++6中这两种技术所涉及到的MFC类:
MFC ODBC类包括CDatabase类 CRecordSet类 CRecoreView类 CFieldExchange类 CDBException类,具体说明请详见任何一本讲述数据库编程技术的参考书。
这么说吧,我们操作ADO,ADO则访问OLEDB(当然可以访问其他的,只要符合ADO接口),OLEDB查询ODBC(也可以不用找他)得到数据接口操作数据.
ODBC?ADO?OLEDB三者区别?
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢,?
ole?db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。?
注 ODBC 和ADO 具有相似的特征,如记录集和数据库对象,尽管MFC 利用这些对象的方式完全不同。
============================================================================
有一个地方绝对不能使用ADO。如果要访问16 位数据,就不能用ADO。不管你怎么想,都必须用ODBC。然而,几乎没有人还在使用16 位数据库了。大多数的新工程都会使用32 位接口,这意味着会有一个选择。老的工程已经有了嵌入代码的数据访问方法,所以你也实在没有必要在这里做决定。ODBC 的一点不足是,不能像以前使用ADO 那样跟踪事务。以Microsoft Jet引擎使用ADO 时,应该得到事务的工作区级的支持。ODBC 只提供数据库级的事务支持,这就是说,可以从几个不同的工作区跟踪事务(这使得调试非常困难,还可能导致其它类型的问题)。
MicrosoftSQLServer2000分布式查询:OLEDB连接
MicrosoftSQLServer2000分布式查询:OLEDB连接摘要:本文描述了 Microsoft SQL Server 2000 查询处理器如何与OLE DB 提供程序进行交互以实现分布式和异类查询。
它面向的读者主要是 OLE DB 提供程序开发人员,并假设读者对 OLE DB 规范有深入的了解。
目录简介概述和术语OLE DB 提供程序交互阶段查询执行方案总结附录 A:SQL Server 采用的 OLE DB 接口附录 B: 用于生成远程查询的 SQL 子集简介本文描述了Microsoft® SQL Server™ 2000 查询处理器如何与OLE DB 提供程序进行交互以实现分布式和异类查询。
它面向的读者主要是 OLE DB 提供程序开发人员,并假设读者对 OLE DB 规范有深入的了解。
本文重点在于描述 SQL Server 查询处理器和 OLE DB 提供程序之间的OLE DB 接口,而不是分布式查询功能本身。
有关分布式查询功能的完整描述,请参阅 SQL Server Books Online。
概述和术语在 Microsoft SQL Server 2000 中,分布式查询允许 SQL Server 用户访问基于SQL Server 的服务器以外的数据(位于其他运行SQL Server 的服务器或是具有OLE DB 接口的其他数据源中)。
OLE DB 提供了统一的方式来访问异类数据源中的列表数据。
在本文中,分布式查询是指任何引用了一个或多个外部OLE DB 数据源中表或行集的 SELECT、INSERT、UPDATE 或 DELETE 语句。
远程表是指存储于OLE DB 数据源中并且不在执行查询的SQLServer 所在服务器上的表。
一个分布式查询可以访问一个或多个远程表。
OLE DB 提供程序类别根据 OLE DB 提供程序在 SQL Server 的分布式查询中的功能,我们将它们划分为如下类别。
oraoledb.oracle.1 中文参数
一、介绍oraoledb.oracle.1是一种用于连接到Oracle数据库的OLE DB提供程序。
OLE DB是一种数据访问技术,它允许应用程序通过OLE DB接口来访问和操作各种类型的数据源。
Oracle数据库是一种常用的关系型数据库管理系统,它广泛应用于企业级应用程序和大型数据库系统中。
oraoledb.oracle.1提供了一种高效、可靠的方式来连接到Oracle数据库,并进行数据查询、插入、更新和删除操作。
二、功能oraoledb.oracle.1提供了一系列功能来支持与Oracle数据库的交互。
其中包括:1. 数据连接:通过oraoledb.oracle.1,应用程序可以建立到Oracle数据库的连接,并进行数据访问操作。
2. 数据查询:应用程序可以使用oraoledb.oracle.1来执行SQL查询语句,从Oracle数据库中检索数据。
3. 数据更新:oraoledb.oracle.1允许应用程序对Oracle数据库中的数据进行插入、更新和删除操作。
4. 数据事务:oraoledb.oracle.1支持事务处理,可以确保数据操作的原子性和一致性。
5. 数据元数据:应用程序可以使用oraoledb.oracle.1来获取Oracle数据库中表、列等元数据信息。
三、使用方法在使用oraoledb.oracle.1连接到Oracle数据库时,需要进行以下步骤:1. 安装oraoledb.oracle.1提供程序:首先需要在计算机上安装oraoledb.oracle.1提供程序,可以从Oracle冠方全球信息站上下载安装包,并按照安装指南进行安装。
2. 配置连接信息:在应用程序中,需要指定连接到Oracle数据库的相关信息,包括数据库服务器位置区域、用户名、密码等。
3. 建立连接:使用oraoledb.oracle.1提供程序提供的接口,建立到Oracle数据库的连接。
4. 执行数据操作:一旦建立了连接,应用程序就可以使用oraoledb.oracle.1来执行数据查询、更新等操作。
各主要数据库的连接串
各主要数据库的连接串将连接方式分为两大类,一类是OLEDB方式,一类是ODBC方式。
收集了一段时间,整理出来,欢迎补充和修正。
谢谢。
方式的连接与ADO类似,这里不加整理。
数据库连接串:****A.OLEDB方式:1.Oracle标准连接(Standard Security):"Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd; " 这是Microsoft的格式, 下面是Oracle的格式(提供者不同)"Provider=OraOLEDB.Oracle;DataSource=MyOracleDB;UserId=Username;Password=asdasd; "注意:"Data Source= " 必须根据相应的命名方法设置为Net8名称。
例如对于局部命名,它是tnsnames.ora中的别名,对于Oracle命名,它是Net8网络服务名。
信任连接(Trusted Connection):"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1; "或者设置user ID为"/ ""Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=; "2.SQL Server标准连接(Standard Security):"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd; "信任连接(Trusted connection):"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI; " (如果连接一个具体的已命名SQLServer实例,使用Data Source=Servere Name\Instance Name;但仅适用于SQLServer2000)例如:"Provider=sqloledb;Data Source=MyServerName\MyInstanceName;Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword; "连接时弹出输入用户名和口令对话框:Conn.Provider = "sqloledb "Conn.Properties( "Prompt ") = adPromptAlwaysConn.Open "Data Source=Aron1;Initial Catalog=pubs; "通过IP地址连接:"Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;UserID=sa;Password=asdasd; " (DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口号(缺省为1433))3.Access标准连接(Standard Security):"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=; "组连接(系统数据库)"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw; ", "admin ", " "带口令的连接:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword; ", "admin ", " "4.MySQL标准连接:"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd; " Data Source是MySQL数据库的名字,也可以使用server=localhost;DB=test5.DB2OLE DB, OleDbConnection (.NET) from msTCP/IP:"Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW " APPC:"Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW "AS400"Provider=IBMDA400;Data source=myAS400;User Id=myUsername;Password=myPassword; "6.Excel标准连接(Standard Security):"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\DatabasePath\DBSpreadSheet.xls;Extended Properties=\ "\ "Excel 8.0;HDR=Yes;\ "\ "; "注意:如果"HDR=Yes ",那么提供者不会在记录集中包括选择的第一行,如果,那么提供者将在记录集中包括单元范围(或已经命名范围)的第一行7.txt(.csv, .txt, .tab)"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DatabasePath\;Extended Properties=\ "\ "text; "HDR=Yes;FMT=Delimited; \ "\ "; "注意在书写sql语句时必须指定文件名(如"Select Name, Address From Clients.txt ").8.VFP(.dbc, .dbf)标准连接:"Provider=vfpoledb;Data Source=C:\DatabasePath\MyDatabase.dbc; "或"Provider=VFPOLEDB.1;Data Source=d:\temp;Password= " ";Collating Sequence=MACHINE "9.Interbase标准连接:"provider=sibprovider;location=localhost:;datasource=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey "指定字符集:"provider=sibprovider;location=localhost:;datasource=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;character set=ISO8859_1 "指定角色:"provider=sibprovider;location=localhost:;datasource=c:\databases\gdbs\mygdb.gdb;userid=SYSDBA;password=masterkey;role=DIGITADORES "" 需要了解更多请链接到Interbase的如下Borland开发者网络文章/article/0,1410,27152,00.html10.SybaseAdaptive Server Anywhere (ASA):"Provider=ASAProv;Data source=myASA "Adaptive Server Enterprise (ASE)(带数据源为.IDS文件):"Provider=Sybase ASE OLE DB Provider; Data source=myASE "注意你必须使用数据管理器来创建一个数据源.IDS文件.这些.IDS 文件类似于ODBC DSNs.补充:Outlook 2000 personal mail box"Provider=Microsoft.Jet.OLEDB.4.0;Outlook 9.0;MAPILEVEL=;DATABASE=C:\Temp\; " 使用任何临时文件夹代替c:\temp。
ADO简介
ADO简介简介ActiveXDataObjects(ADO)是微软最新的数据访问技术。
它被设计用来同新的数据访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataAccess)。
OLEDB 是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口。
对那些熟悉RDO的程序员来说,你可以把OLEDB比作是ODBC驱动程序。
如同RDO对象是ODBC 驱动程序接口一样,ADO对象是OLEDB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLEDB提供者(OLEDBprovider)。
目前,虽然OLEDB提供者比较少,但微软正积极推广该技术,并打算用OLEDB取代ODBC。
ADO向VB程序员提供了很多好处。
包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K 略小,大约是DAO3.5的Dao350.dll所占内存的60%)。
同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。
因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。
ADO针对客户/服务器以及WEB应用程序作了优化。
本文的目的是带你进入ADO广阔的世界并开始使用它。
在哪里能得到ADO?目前ADO1.5版已经可以从微软网站免费下载。
到目前为止,微软网站仍是你获取有关ADO 最新信息的最佳场所。
ADO1.5是作为OLEDBSDK的一部分提供的。
你可以从下面这个网址下载:/data/oledb/download.htm在下载之前请先确认OLEDBSDK提供的各项特性。
OLEDB和ODBC的区别
ODBC(开放数据库互连):是Microsoft引进的一种早期数据库接口技术。
它实际上是ADO的前身。
早期的数据库连接是非常困难的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了. 也就是现在的ODBC(Open Database Connectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库.OLEDB(对象链接和嵌入数据库)位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB 之上的"应用程序". 你的ADO调用先被送到OLEDB,然后再交由ODBC处理. 你可以直接连接到OLEDB 层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.用odbc连接数据库:odbc中提供三种dsn,它们的区别很简单:用户dsn只能用于本用户。
系统dsn和文件dsn的区别只在于连接信息的存放位置不同:系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。
它们的创建方法就不说了。
在asp中使用它们时,写法如下:A.sql server:用系统dsn: connstr="DSN=dsnname; UID=xx; PWD=xxx;DATABASE=dbname"用文件dsn: connstr="FILEDSN=xx;UID=xx; PWD=xxx;DATABASE=dbname"还可以用连接字符串(从而不用再建立dsn):connstr="DRIVER={SQL SERVER};SERVER=servername;UID=xx;PWD=xxx"B.access:用系统dsn: connstr="DSN=dsnname"(或者为:connstr="DSN=dsnname;UID=xx;PWD=xxx")用文件dsn: connstr="FILEDSN=xx"还可以用连接字符串(从而不用再建立dsn):connstr="DRIVER={Microsoft Access Driver};DBQ=d:\abc\abc.mdb"用oledb连接数据库:A.sql server:connstr="PROVIDER=SQLOLEDB;DATA SOURCE=servername;UID=xx;PWD=xxx;DA TABASE=dbname"B.access:connstr="PROVICER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:\abc\abc.mdb"值得注意的是,OLE DB对ODBC的兼容性,允许OLE DB访问现有的ODBC数据源。
OleDb连接各种数据库的字符串
OleDb连接各种数据库的字符串Access数据库Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\test.mdbSql数据库Provider=SQLOLEDB; Data Source=服务器名称; Initial Catalog=数据库名称; User ID=登录名; Password='登录密码'eg:Provider=SQLOLEDB; Data Source=192.168.0.100\SQL2008; Initial Catalog=wuhan_gl; User ID=sa; Password='sa'Oracle数据库(必须安装Oracle客户端)Provider=OraOLEDB.Oracle;Data Source=服务器名称;User Id=登录名;Password=密码eg:Provider=OraOLEDB.Oracle;Data Source=orcl;User Id=wuhan_gl;Password=123456另:OracleClient远程连接Oracle数据库的字符串SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=服务器名称)));uid=登录名;pwd=登录密码; ps:1521为端口号eg:SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1192.168.0.100)(POR T=1521))(CONNECT_DA TA=(SERVICE_NAME=orcl)));uid=wuhan_gl;pwd=123456;SqlClient远程连接SQL数据库Server=服务器IP; Data Source=服务器名称; Initial Catalog=数据库名称; user id=登录名; password='登录密码'eg:Server=192.168.0.100; Data Source=192.168.0.100\SQL2008; Initial Catalog=wuhan_gl; user id=sa; password='sa'。
oledb 连接用法 -回复
oledb 连接用法-回复OleDb连接用法OleDb是一种.NET Framework中的数据库连接工具,可以用于连接各种不同类型的数据库,如Microsoft Access、Excel、SQL Server等。
在本文中,我将一步一步回答有关OleDb连接用法的问题,并提供示例代码来说明每个步骤。
1. OleDb连接的基本概念是什么?OleDb连接是通过OleDbConnection类实现的,它允许在.NET应用程序中与各种数据库进行通信。
通过该连接,我们可以执行SQL查询、插入、更新和删除操作,并获取和处理数据库返回的结果。
2. 如何建立OleDb连接?首先,我们需要引入System.Data.OleDb命名空间,这个命名空间包含了OleDb连接所需的基本类。
using System.Data.OleDb;接下来,我们可以通过OleDbConnection类的构造函数创建一个新的连接实例。
在传递构造函数时,我们需要指定连接字符串,该字符串包含有关要连接到的数据库的信息。
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\path\\to\\database.mdb";OleDbConnection connection = newOleDbConnection(connectionString);在上面的示例中,我们使用Microsoft Access数据库作为目标,所以在连接字符串中使用了"Provider=Microsoft.Jet.OLEDB.4.0"来指定提供程序。
3. 如何打开和关闭OleDb连接?要打开OleDb连接,我们可以调用OleDbConnection对象的Open()方法,该方法将尝试与数据库建立连接。
connection.Open();在完成所有数据库操作后,我们应该关闭连接以释放资源。
oledb 连接用法 -回复
oledb 连接用法-回复OLEDB连接用法OLEDB (Object Linking and Embedding Database) 是一种面向对象的数据库连接接口,它提供了一种统一的方式访问不同类型的数据源,如关系型数据库、电子表格、文本文件等。
使用OLEDB连接可以实现数据的读取、写入、更新和删除等操作。
本文将详细介绍OLEDB连接的用法,包括连接字符串的构建、数据源的选择、连接对象的创建和使用等。
希望本文可以帮助读者更好地理解并应用OLEDB连接。
一、连接字符串的构建在使用OLEDB连接之前,首先需要构建正确的连接字符串。
连接字符串可以理解为连接数据库所需的一系列参数的集合。
下面是一个连接字符串的示例:Provider=Microsoft.Jet.OLEDB.4.0; DataSource=D:\Data\mydatabase.mdb; User Id=admin; Password=;上述示例中的连接字符串用于连接Microsoft Access数据库。
其中,Provider指定了所使用的提供程序,Data Source指定了数据源的路径和名称,User Id和Password指定了连接数据库所需的用户名和密码。
根据所使用的数据库类型的不同,连接字符串的格式也会有所不同。
可通过查阅相关文档或搜索引擎,找到对应数据库类型的连接字符串格式。
二、数据源的选择OLEDB连接支持访问多种类型的数据源,常见的有Microsoft Access、Microsoft Excel、SQL Server等。
在选择数据源时,需要明确所需操作的数据类型以及数据源的特点。
如果需要操作的是关系型数据库,如SQL Server,可以使用SQL Server 提供的本机的API,效率更高。
同时,还可以根据需要,选择使用不同版本的OLEDB提供程序,如SQL Server Native Client、OLEDB Provider for SQL Server等。
oledbconnection 程序集引用
oledbconnection 程序集引用
要在程序中使用OLEDBConnection 类,你需要在项目中添加对
`System.Data.OleDb` 程序集的引用。
以下是在Visual Studio 中添加引用的步骤:
1. 在Visual Studio 中打开你的项目。
2. 右键单击项目,然后选择“添加”>“引用”。
3. 在“引用管理器”对话框中,选择“程序集”选项卡。
4. 在搜索框中输入“OleDb”,然后选择`System.Data.OleDb` 程序集。
5. 点击“确定”按钮以添加引用。
完成上述步骤后,可以在项目中使用`System.Data.OleDb` 命名空间中的类,包括OLEDBConnection 类。
请注意,如果你正在使用的是 .NET Core 或 .NET 5+,则需要在项目文件中添加对System.Data.OleDb 的NuGet 包引用。
这是一个示例项目文件(.csproj)中添加NuGet 包引用的方式:
<ItemGroup>
<PackageReference Include="System.Data.OleDb" Version="4.8.1" /> </ItemGroup>
请根据你在项目中使用的 .NET 版本更新NuGet 包的版本号。
OLEDB客户数据库编程
图8-2 OLE DB的客户模板体系结构8.1.5 OLE DB客户模板结构图8-3 工程创建向导选择应用程序的框架类型。
点击“New”对话框的“OK”按钮,弹出“MFC AppWizard ”对话框,如图8-4所示。
创建OLEDB_MFC工程的第一步是选择应用程序的框MFC AppWizard – Step 1”对话框里,选择“Single document”,保持资源的语言类型为“中文”,点击“Next >”按钮,执行下一步。
图8-4 选择应用程序的框架类型设置应用程序数据库特性。
在“MFC AppWizard –Step 2 of 6 Database view without file support”,如图8-5所示。
图8-5 设置应用程序数据库特性设置数据源。
在“MFC AppWizard –Step 2 of 6”对话框里点击“钮,准备设置应用数据源。
这里只是把支持OLE DB的头文件和OLE DB 到工程里而已,至于添加什么内容并不重要。
在弹出的“Database Options ”选择“OLE DB”,如图8-6所示。
图8-6 为应用程序设置数据源OLE DB数据源。
在“Database Option”对话框里,点击“OLE DB Data Source OLE DB数据源,弹出“数据链接属性”对话框,如图OLE DB服务器程序。
在“数据链接属性”对话框的“OLE DBMicrosoft Jet 4.0 OLE DB Provider”,然后点击“下一步”按钮,弹出“连接”选所示。
图8-7 “数据链接属性”对话框的提供者选项标签图8-8 “数据链接属性”对话框的连接选项标签Microsoft Jet数据库文件(.MDB)。
在“指定下列设置以连接到)步里,点击编辑区域右边的“…”按钮,弹出如图8-9所示的“选择在对话框里选择“Employees.mdb”,点击“打开”按钮,完成Microsoft件的选择。
oledb 字符排序规则
oledb 字符排序规则OleDb字符排序规则OleDb是一种基于COM(Component Object Model)的数据库访问技术,它提供了一组接口和对象,用于连接和操作各种不同类型的数据库。
在OleDb中,字符排序规则(Collating Sequence)是一个重要的概念,它决定了数据库中的字符串如何进行排序。
字符排序规则是一种定义了字符比较和排序方式的规范。
不同的字符排序规则可以根据不同的语言、文化和地区来定义,以适应各种不同的排序需求。
在OleDb中,字符排序规则是由一个字符串表示的,可以通过修改连接字符串或在查询中指定来使用不同的字符排序规则。
在OleDb中,常用的字符排序规则有General、Binary和Unicode,它们分别对应着不同的排序方式。
1. General字符排序规则General字符排序规则是OleDb默认的字符排序规则,它是一种基于Unicode字符集的排序规则。
在General字符排序规则下,字符按照其Unicode编码进行排序。
比如,字符"A"排在字符"B"的前面,而字符"Z"排在字符"a"的前面。
2. Binary字符排序规则Binary字符排序规则是一种严格的二进制排序规则,它完全按照字符在内存中的二进制表示进行排序。
在Binary字符排序规则下,字符的排序顺序与其在字符集中的位置无关,而是根据字符的具体二进制值来决定的。
比如,字符"Z"排在字符"a"的前面,因为它的二进制表示的值更小。
3. Unicode字符排序规则Unicode字符排序规则是一种特殊的排序规则,它可以对包含多种语言字符的字符串进行排序。
Unicode字符排序规则通过考虑字符的语言特性和排序习惯,使得排序结果更符合人们的直觉。
比如,字符"ä"会排在字符"b"的前面,因为在德语中,"ä"被认为是字母"a"的一个变体,应该排在"a"之前。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[@rmtuser =] 'rmtuser'
当 useself 为 false 时,用来连接 rmtsrvname 的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。
[@rmtpassword =] 'rmtpassword'
与 rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。
[ , [ @rmtpassword = ] 'rmtpassword' ]
Байду номын сангаас
参数
[@rmtsrvname =] 'rmtsrvname'
是应用登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。
[@useself =] 'useself'
决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果 rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself 为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。
SELECT * FROM openrowset('Microsoft.Jet.OLEDB.4.0',
'Data Source=d:\mis\zhongshan\仓库\成品报表\产品体积及规格.xls;Extended Properties=Excel 5.0')...[体积$]
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
[ @locallogin =] 'locallogin'
本地服务器上的登录。locallogin 的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到 rmtsrvname 的本地登录。如果值不为 NULL,则 locallogin 可以是一个 SQL Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 SQL Server 或通过其作为已授予访问权限的组的成员来访问 SQL Server 的权限。
语法
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'useself' ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
2,其次,创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射
sp_addlinkedsrvlogin 'B', 'false', NULL, 'sa',''
3,执行insert B.DB1.dbo.table1 values (1,'20')就可以了.
EXEC sp_addlinkedsrvlogin VolumeSrv, FALSE, NULL, Admin, NULL
select * from VolumeSrv...体积$
------------------------
1,首先创建一个链接的服务器,sp_addlinkedserver 'B';
'Excel 8.0;Database=d:\mis\zhongshan\仓库\成品报表\产品体积及规格.xls', 体积$)
------------------------
EXEC sp_addlinkedserver VolumeSrv, 'Excel', 'Microsoft.Jet.OLEDB.4.0','d:\mis\zhongshan\仓库\成品报表\产品体积及规格.xls',NULL,'Excel 8.0'