ADO可以访问哪些数据库,ADONET更适用于访问哪一种数据库
来源:整理 编辑:黑码技术 2024-06-14 11:24:51
1,ADONET更适用于访问哪一种数据库
非也非也答案如楼主预知的那样-SQL Server。ADO.NET在开发的时候就已经在内部对访问SQL Server机制作了优化。同等数据量SQL Server要比其他database快75%。----当然,本人无法做出测试``此数据是很久以前一位微软VIP告知的``
2,ADONET有几种访问数据库的方法
连接模式:数据库和PC端一直保持连接状态.非连接模式:数据库和PC端,每次进行数据操作完成后,自动关闭连接状态.再次使用时可以重新打开连接.直连接 和 无连接 直连接:每条语句都要操作数据库 无连接:先把表格提取到内存里,修改完成后在和数据库同步...ado.net数据库访问模型提供了对关系数据库的访问,是ado.net模型的一类组件。ado.net模型是一组向 .net 程序员公开数据访问服务的类。
3,ADO和ODBC是什么
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。 你要问我他们有没有联系统我还真知道的不太详细。如果做项目的话,不建议用ODBC来做,因为ODBC慢。但是如果你用ODBC也没有问题。ado是asp中用于连接数据库一种技术ODBC是asp.net中连接access数据库的类ODBC和ADO区别、ODBC(Open DataBase Connection)开放式系统互连,是一种数据库访问协议,提供了访问数据库的API接口。基于ODBC的应用程序,对数据库操作不依赖于具体的DBMS,不直接与DBMS打交道,所有数据库操作由对应DBMS的ODBC驱动程序完成,即:系统中不需要安装DBMS系统,如SQL SERVER 2005,但必须有SQL SERVER 2005的ODBC驱动程序,然后在ODBC管理器中注册数据源后,就可以在应用程序中通过ODBC API访问该数据库。 ODBC数据库访问技术只适用于windows系统,因为需要在ODBC驱动程序管理器中进行数据源注册,而只有windows才集成了ODBC驱动程序管理器(“控制面板/管理工具/数据源”)。ADO(ActiveX Data Object)具有跨系统平台特性,它直接对DBMS数据库进行操作,即系统中必须有DBMS,但不需要驱动程序,不需要注册数据源,所以具有很好的可移植性。VC++6中这两种技术所涉及到的MFC类:MFC ODBC类包括CDatabase类 CRecordSet类 CRecoreView类 CFieldExchange类 CDBException类,具体说明请详见任何一本讲述数据库编程技术的参考书。ADO是data object,即数据对象的意思,先看一些它包括哪些常用对象:Command对象 Connection对象 Error对象 RecordSet对象 Field对象 Parameter对象,对应到MFC ADO类,主要有_ConnectionPtr _RecordsetPtr等类。基于ODBC和ADO的VC++应用程序设计概述习惯上建立基于文档视图的应用程序时,使用ODBC访问方法,创建应用程序时,需要在step 2 of 6 what database support would you like to include中选择"database view with file support"加载你要访问的数据库,如果在此选择None,后期编程载入数据库相当麻烦,请注意。(如果一个数据库中有多个表,可在此选择一个表进行类定义,默认类名为"工程名+Set",可在应用程序创建完成前最后一步进行改名;然后在编程时建立其他基于CRecordSet的数据库表类) 如果在step 2中设置访问的数据库和表,则在生成的应用程序框架的XXSet类中会自动加载对数据库和表的连接访问操作,当然最好重新进行定义;系统只有在必要时才会调用GetDefaultConnection和GetDefaultSQL返回缺省的数据库连接定义和SQL语句。当然也可以建立基于对话框的数据库访问应用程序,思路差不e799bee5baa6e79fa5e98193e58685e5aeb931333337396237多。 习惯上当建立基于对话框的应用程序时,选择使用ADO技术。对于小程序,在StdAfx.h中引入ADO动态连接库,在C***APP中应初始化COM库环境,创建和关闭ADO连接。对于大型项目,通过自定义的ADOConnection类封装数据库操作的各种接口。
4,ADONET中用于SQL Server数据库访问的对象及基本用法
这个怎么说呢??不过吗数据库的SQL Server2000吗应该很容易理解的啦,ADO.NET 连接数据库跟 oracle,mysql等是一样的只是驱动包不同。实例:http://www.vckbase.com/code/database/ado/vcadodotnetsrc.zip 关键字 ado访问数据库大全 原作者姓名 相生昌 介绍 vc用ado访问数据库全攻略,介绍了vc用ado来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。 正文 一、ado概述 ado是microsoft为最新和最强大的数据访问范例 ole db 而设计的,是一个便于使用的应用程序层接口。ado 使您能够编写应用程序以通过 ole. db 提供者访问和操作数据库服务器中的数据。ado 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ado 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。之所以称为 ado,是用了一个比较熟悉的暗喻,ole 自动化接口。 ole db是一组”组件对象模型”(com) 接口,是新的数据库低层接口,它封装了odbc的功能,并以统一的方式访问存储在不同信息源中的数据。ole db是microsoft uda(universal data access)策略的技术基础。ole db 为任何数据源峁┝烁咝阅艿姆梦剩?庑┦?菰窗?ü叵岛头枪叵凳?菘狻⒌缱佑始?臀募?低场⑽谋竞屯夹巍⒆远ㄒ逡滴穸韵蟮鹊取r簿褪撬担琌le db 并不局限于 isam、jet 甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在 excel 电子数据表、文本文件、电子邮件/目录服务甚至邮件服务器,诸如 microsoft exchange 中的数据。但是,ole db 应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。您需要的api 应该是一座连接应用程序和ole db 的桥梁,这就是 activex data objects (ado)。 二、在vc中使用ado(开发步骤好下:) 1、引入ado库文件 使用ado前必须在工程的stdafx.h头文件里用直接引入符号#import引入ado库文件,以使编译器能正确编译。代码如下所示: 用#import引入ado库文件 #import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("eof" adoeof") 这行语句声明在工程中使用ado,但不使用ado的名字空间,并且为了避免常数冲突,将常数eof改名为adoeof。现在不需添加另外的头文件,就可以使用ado接口了。 2、初始化ole/com库环境 必须注意的是,ado库是一组com动态库,这意味应用程序在调用ado前,必须初始化ole/com库环境。在mfc应用程序里,一个比较好的方法是在应用程序主类的initinstance成员函数里初始化ole/com库环境。 bool cmyadotestapp::initinstance() { if(!afxoleinit())//这就是初始化com库 { afxmessagebox(“ole初始化出错!”); return false; } …… } 3、ado接口简介 ado库包含三个基本接口:_connectionptr接口、_commandptr接口和_recordsetptr接口。 _connectionptr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的sql语句,如一个存储过程。使用_connectionptr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_recordserptr来实现。而用_connectionptr操作时要想得到记录条数得遍历所有记录,而用_recordserptr时不需要。 _commandptr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和sql语句。在使用_commandptr接口时,你可以利用全局_connectionptr接口,也可以在_commandptr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_connectionptr接口创建一个数据连接,然后使用_commandptr接口执行存储过程和sql语句。 _recordsetptr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_commandptr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_recordsetptr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同command对象一样使用已经创建了数据连接的全局_connectionptr接口 ,然后使用_recordsetptr执行存储过程和sql语句。 4、使用_connectionptr接口 _connectionptr主要是一个连接接口,取得与数据库的连接。它的连接字符串可以是自己直接写,也可以指向一个odbc dsn。。 _connectionptr pconn; if (failed(pconn.createinstance("adodb.connection"))) { afxmessagebox("create instance failed!"); return; } cstring strsrc; strsrc="driver=sql server;server="; strsrc+="suppersoft"; strsrc+=";database="; strsrc+="mydb"; strsrc+=";uid=sa;pwd="; cstring strsql = "insert into student(no,name,sex,address) values(3,"aaa","male","beijing")"; _variant_t varsrc(strsrc); _variant_t varsql(strsql); _bstr_t bstrsrc(strsrc); if (failed(pconn->open(bstrsrc,"","",-1))) { afxmessagebox("can not open database!"); pconn.release(); return; } colevariant vtoptional((long)disp_e_paramnotfound,vt_error); pconn->execute(_bstr_t(strsql),&vtoptional,-1); pconn.release(); afxmessagebox("ok!"); 5、使用_recordsetptr接口(以连接sql server为例) _recordsetptr pptr; if (failed(pptr.createinstance("adodb.recordset"))) { afxmessagebox("create instance failed!"); return false; } cstring strsrc; strsrc="driver=sql server;server="; strsrc+="210.46.141.145"; strsrc+=";database="; strsrc+="mydb"; strsrc+=";uid=sa;pwd="; strsrc+="sa"; cstring strsql = "select id,name,gender,address from personal"; _variant_t varsrc(strsrc); _variant_t varsql(strsql); if(failed(pptr->open(varsql,varsrc,adopenstatic,adlockoptimistic,adcmdtext))) { afxmessagebox("open table failed!"); pptr.release(); return false; } while(!pptr->getadoeof()) { _variant_t varno; _variant_t varname; _variant_t varsex; _variant_t varaddress; varno = pptr->getcollect ("id"); varname = pptr->getcollect ("name"); varsex = pptr->getcollect ("gender"); varaddress = pptr->getcollect ("address"); cstring strno =(char *)_bstr_t(varno); cstring strname =(char *)_bstr_t(varname); cstring strsex =(char *)_bstr_t(varsex); cstring straddress =(char *)_bstr_t(varaddress); strno.trimright(); strname.trimright(); strsex.trimright(); straddress.trimright(); int ncount = m_list.getitemcount(); int nitem = m_list.insertitem (ncount,_t("")); m_list.setitemtext (nitem,0,strno); m_list.setitemtext (nitem,1,strname); m_list.setitemtext (nitem,2,strsex); m_list.setitemtext (nitem,3,straddress); pptr->movenext(); } pptr->close(); pptr.release(); 6、使用_commandptr接口 _commandptr接口返回一个recordset对象,并且提供了更多的记录集控制功能,以下代码示例了使用_commandptr接口的方法: 代码11:使用_commandptr接口获取数据 _commandptr pcommand; _recordsetptr prs; pcommand.createinstance(__uuidof(command)); pcommand->activeconnection=pconn; pcommand->commandtext="select * from student"; pcommand->commandtype=adcmdtext; pcommand->parameters->refresh(); prs=pcommand->execute(null,null,adcmdunknown); _variant_t varvalue = prs->getcollect("name"); cstring strvalue=(char*)_bstr_t(varvalue); 6、关于数据类型转换由于com对象是跨平台的,它使用了一种通用的方法来处理各种类型的数据, 因此cstring 类和com对象是不兼容的,我们需要一组api来转换com对象和c++类型的数据。_vatiant_t和_bstr_t就是这样两种对象。它们提供了通用的方法转换com对象和c++类型的数据。我这有封装好的数据库类 你要的话给你不过是asp.net的区别就是建立数据库连接不一样Connection对象
Command对象
DataReader对象
DataAdapter对象
DataSet对象
DataView对象
等等~
还有很多哈
去翻翻书看吧
文章TAG:
可以 访问 哪些 数据 ADO可以访问哪些数据库