这里不展开详细的说事务,只是谈谈OLEDB在事务上的支持 ITransactionLocal接口 OLEDB中支持事务的接口是ITransactionLocal接口,该接口是一个可选接口,OLEDB并不强制要求所有数据库都支持该接口
除了常规调用sql语句和进行简单的插入删除操作外,OLEDB还提供了调用存储过程的功能,存储过程就好像是用SQL语句写成的一个函数,可以有参数,有返回值。
不同的平台有自己独特的一套机制,但是从总体来说,思想是共通的,只是语法上的不同,这里主要是说明OLEDB中的使用方式。 使用“?”
title: OLEDB数据源 date: 2018-01-12 21:42:37 tags: [OLEDB, 数据库编程, VC++, 数据库] categories: windows 数据库编程...keywords: OLEDB, 数据库编程, VC++, 数据库 --- 数据源在oledb中指数据提供者,这里可以简单的理解为数据库程序。...它的这些设置都是通过属性进行的 OLEDB属性与属性设置 OLEDB虽然是基于COM的一组接口,但是它与标准的COM接口有点不同,它的一大特色在于它自身的属性设置,有的接口虽然对象中存在但是调用QueryInterface...其实不用担心OLEDB在断开连接的时候已经帮助我们释放了这部分空间。...(IDBPromptInitialize); DECLARE_OLEDB_INTERFACE(IDataInitialize); DECLARE_OLEDB_INTERFACE(IDBInitialize
除了之前介绍的接口,OLEDB还定义了其他一些支持回调的接口,可以异步操作OLEDB对象或者得到一些重要的事件通知,从而使应用程序有机会进行一些必要的处理。其中较有用的就是结果集对象的变更通知接口。...标准COM的回调方式 为了更好的理解OLEDB的回调,先回忆一下标准COM的回调方式。...IRowsetNotify接口 对于OLEDB结果集来说,最重要的事件接口是IRowsetNotify,该接口提供三个重要的通知函数: OnFieldChange:列数据发生变更 OnRowChange...一般操作数据结果集有5个状态,分别对应这样的5个值: DBEVENTPHASE_OKTODO:准备好了去做,当应用程序需要操作结果集的时候会发送一个DBEVENTPHASE_OKTODO到监听程序(在这暂时就理解为OLEDB
其实这个功能是OLEDB提供的高级功能之一。 枚举对象用于搜寻可用的数据源和其它的枚举对象(层次式),枚举出来的对象是一个树形结构。...在程序中提供一个枚举对象就可以枚举里面的所有数据源,如果没有指定所使用的的上层枚举对象,则可以使用顶层枚举对象来枚举可用的OLEDB提供程序,其实我们使用枚举对象枚举数据源时它也是在注册表的对应位置进行搜索...或者称之为根枚举器,根枚举器对象的CLSID是CLSID_OLEDB_ENUMNRATOR,顶层枚举对象可以使用标准的COM对象创建方式来创建,之后可以使用ISourceRowset对象的GetSourcesRowset...OLEDB提供者结果集 在上面我们说可以根据结果集中的行类型来判断是否是一个子枚举对象或者数据源对象,那么怎么获取这个行类型呢?这里需要了解返回的行集的结构。...具体例子 最后是一个具体的例子 这个例子中创建了一个MFC应用程序,最后效果类似于前面几个例子中的OLEDB的数据源选择对话框。
针对BLOB型数据,OLEDB也提供了对它的支持 使用BLOB型数据的利弊 一般数据库对BLOB型数据有特殊的处理方式,比如压缩等等,在数据库中存储BLOB数据可以方便的进行检索,展示,备份等操作。...针对这类文件一般的做法是将其保存在系统的某个路径钟中,而在数据库中存储对应的路径 操作BLOB型数据的一般方法 一般针对BLOB不能像普通数据那样操作,而需要一些特殊的操作,在OLEDB中通过设置绑定结构中的一些特殊值最终指定获取...型数据也需要使用ISequentialStream接口,但是它不像之前可以直接使用接口的Write方法,写入的对象必须要自己从ISequentialStream接口派生,并指定一段内存作为缓冲,以便供OLEDB...Write(pFileData, dwFileLen, &dwWritten); pSeqStream->Seek(0); //写这个操作将缓存的指针偏移到了最后,需要调整一下,以便OLEDB...插入BLOB数据时,首先创建一个派生类的对象,注意此处由于后续要交给OLEDB组件调用,所以不能用栈内存。
前一个阶段做一个>主要功能实现对OLEDB数据库的访问选取符合条件的数据表可以是主从关系比如一个主表带多个子表的功能
/** * *在本章节中主要讲解的是如何使用OLEDB将Excel中的数据导入到数据库中 * */ using System; using System.Data; using System.Data.OleDb...系统默认的是YES string connstr2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath...Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; string connstr2007 = "Provider=Microsoft.ACE.OLEDB
---可以说是对odbc,oledb这些系统级的编程接口的汇接,并对DAO,RDO这些应用级的编程接口的升级吧。 ?...ODBC 、DAO 、ADO 、OLEDB 数据库连接方式区别及联系 ODBC 是一种底层的访问技术,因此,ODBC API 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能...ADO和OLEDB之间的关系 OLEDB是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。...可以这么说,ADO为OLEDB提供高层应用API函数。 ?...Server.CreateObject("ADODB.Connection") conn.connectionstring="DSN=注册名;UID=sa;PWD=sa;" conn.open 三、OLEDB
OLEDB 提供了静态绑定和动态绑定两种方式,相比动态绑定来说,静态绑定在使用上更加简单,而在灵活性上不如动态绑定,动态绑定在前面已经介绍过了,本文主要介绍OLEDB中的静态,以及常用的数据类型转化接口...数据关系对应表 一般静态绑定需要将数据库表的各项数据与结构体中的成员一一对应,这个时候就涉及到数据库数据类型到C/C++中数据类型的转化,下表列举了常见的数据库类型到C/C++数据类型的转化关系 数据库类型 OLEDB...而对应到具体的编程语言上有不同的展示方式,具体的语言中对同一种数据库类型有不同的数据类型对应,甚至有的可能并没有什么类型可以直接对应,这就涉及到一个从数据库数据类型到具体编程语言数据类型之间进行转换的问题,针对这一问题OLEDB...数据转换接口的使用 使用COM标准的方式创建IDataConver接口(调用CreateInstance函数传入CLSID_OLEDB_CONVERSIONLIBRARY创建一个IID_IDataConvert
VB.NET OLEDB创建Excel数据库 Imports System.Data.OleDb Public Class Form1 Private Sub Button1_Click(sender...Object, e As EventArgs) Handles Button1.Click Dim cnstr As String = "Provider=Microsoft.jet.OLEDB
上次将OLEDB的所有内容基本上都说完了,从之前的示例上来看OLEDB中有许多变量的定义,什么结果集对象、session对象、命令对象,还有各种缓冲等等,总体上来说直接使用OLEDB写程序很麻烦,用很大的代码量带来的仅仅只是简单的功能...ATL中的OLEDB主要有两大模块,提供者模块和消费者模块,顾名思义,提供者模块是数据库的开发人员使用的,它主要使用这个模块实现OLEDB中的接口,对外提供相应的数据库服务;消费者模块就是使用OLEDB...中的数据源对象和session对象 Command:命令对象,用来执行sql语句,类似于OLEDB中的Command对象 Recordset: 记录集对象,执行SQL语句返回的结果,类似于OLEDB中的结果集对象...混合编程 ADO相比较OLEDB来说确实方便了不少,但是它也有它的问题,比如它是封装的ActiveX控件,从效率上肯定比不上OLEDB,而且ADO中记录集是一次性将结果中的所有数据加载到内存中,如果数据表比教大时这种方式很吃内存...其实上述问题使用二者的混合编程就可以很好的解决,在处理结果集时使用OLEDB,而在其他操作时使用ADO这样既保留了ADO的简洁性也使用了OLEDB灵活管理结果集内存的能力。
getExcelFileInfo( string Path) { string strConn = " Provider=Microsoft.Jet.OLEDB...Source= " + Path + " ; " + " Extended Properties=Excel 8.0; " ; System.Data.OleDb.OleDbConnection...conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.DataTable...table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null );...: " ); System.Data.DataTable tableColumns = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns
在C#编程中,使用OleDb可以方便地实现对Excel文件和数据库的操作。本文探讨了在C#中使用OleDb技术操作Excel和数据库的策略。...在.NET环境下,OleDb可以通过System.Data.OleDb命名空间提供的类来使用。二、OleDb安装前准备1....三、OleDb操作EXCEL1....五、OleDb操作总结1....OleDb操作总结通用性:OleDb提供了一个广泛的数据库访问解决方案,支持多种数据库系统。这使得它非常适合需要与多种数据源交互的应用程序。
在数据库查询中,我们主要使用的SQL语句,但是之前也说过,SQL语句需要经历解释执行的步骤,这样就会拖慢程序的运行速度,针对一些具体的简单查询,比如根据用户ID从用户表中查询用户具体信息,像这样的简单查询OLEDB...另外在之前的代码中,只是简单的通过HRESULT这个返回值来判断是否成功,针对错误没有具体的处理,但是OLEDB提供了自己的处理机制,这篇博文主要来介绍这两种情况下的处理方式 简单数据查询和定位 它的使用方法与之前的简单读取结果集类似...HRESULT FindNextRow ( HCHAPTER hChapter, HACCESSOR hAccessor, //绑定查询条件的访问器,用于OLEDB...::GetDescription得到错误描述信息,调用IErrorInfo::GetSource得到错误来源信息 以上所述IErrorInfo接口是COM定义的标准接口,IErrorRecords是OLEDB...另外可以调用接口的GetCustomErrorObject给定一个错误码,得到一个具体的错误对象,一般在OLEDB中这个对象是ISQLErrorInfo接口 这两个函数的第一个参数是一个编号,这个编号一般是第几个
SQL语句必然伴随着数据库的解释执行,一般来说效率比较低下,而且使用SQL语句时需要数据库支持ICommandText对象,但是在OLEDB中它是一个可选接口,也就是有的数据库可能不支持,这个时候OLEDB
笔者在项目中做做了一个从Excel表格中导入数据的模块、大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Excel...sealed class ExcelHelper { private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB...conn.Open(); DataTable sheetNames = conn.GetOleDbSchemaTable (System.Data.OleDb.OleDbSchemaGuid.Tables...return list; } 程序在执行时会抛出: 异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB
在excel转 DataTable遇到的问题: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。...if (filepath.EndsWith(".xls")) strConn = string.Format("Provider=Microsoft.Jet.OLEDB...else if (filepath.EndsWith(".xlsx")) strConn = string.Format("Provider=Microsoft.ACE.OLEDB...conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.DataTable...dtname = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null
1.使用OLEDB读取Excel,本机调试正常,但是部署IIS上后,当点击按钮时,按钮变灰,系统也没捕获异常。 ...在浏览器中看到异常:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 百度搜索到问题原因是:Microsoft.Jet.OLEDB.4.0这个只能32位环境运行,服务器是...string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + allPath + ";Extended Properties...第二步 修改连接 原来连接 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.xls;Extended Properties="Excel 8.0;HDR...=YES;IMEX=1" 修改为: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=1.xls;Extended Properties="Excel
领取专属 10元无门槛券
手把手带您无忧上云