下载  >  课程资源  >  C/C++  > VC++连接SQL Server 2005的方法总结

VC++连接SQL Server 2005的方法总结 评分

VC++连接SQL Server 2005的方法总结,ODBC,OLEDB,ADO等
·30· Visual o++与 Oracle数据库编程案例 数据库访问的高层接口 Visual c++提供了上述几种开发技术,但是微软推荐使用 MFC ODBO和ADO数 据库开发技术。其中DAO开发技术已经不再被Ⅴ isual c++Net支持,而且在实际的项 目开发中,也主要使用这两种开发技术,本书将重点介绍这两种开发技术。 数据库开发技术 ODBC是一个应用广泛的数据库访问应用编程接口,使用标准的SQL作为其数据 库访问语言。ODBC的设计是建立在客户机/服务器体系结构基础之上的。ODBC使开发 者避免了与数据源连接的复杂性。几乎所有的关系型数据库系统都提供ODBC驱动程 序,例如 SQL Server、 Oracle、 Informⅸx、DB2、 Sybase等等。ODBC数据库访问接口 是用C语言编写的,充分体现了C语言的通用性,从而可以更好的访问多种关系型数据 库系统。开发者只需安装该数据库系统的ODBC驱动程序,就可以建立应用程序和数据 库系统的通讯接口,从而使应用程序快速访问和操作数据库了 主要类介绍 Visual o++中提供了 MFC ODBC类,封装了 ODBC API,这使得利用MFC来创建 ODBC的应用程序非常简便。在 MFC ODBC类中,常用的类有: CDatabase数据库类 CRecordset记录集类、 CRecord view可视记录集类和 CDBException异常类。 CDatabase类对象建立了和数据库数据源的一个连接,通过它可以对数据库进行操 作。例如使用 ExecuteSαL函数实现对数据库记录的添加、修改和删除操作。 CRecordset类对象代表一个从数据源中获取的记录集。 CRecordset记录集有两种重 要的打开方式,分别为动态集( Dynaset)和快照集( Snapshot)。快照集( Snapsho)提供了对 数据的静态访问,就象对数据源的某些数据进行拍照一样,是静态的数据,别的用户对 数据源里数据进行添加、修改和删除的时候,快照集里面的记录不受影响,只有在调用 CRecordset的 Requery函数重新查询的时候,快照集才会产生变化。动态集提供了对 数据的动态访问,和其他用户所做的更改保持同步,当别的用户修改或删除了记录集中 的记录时,会在动态集中反映出来。 CRecordⅤiew类对象提供了一个表单视图来显示和操作记录集,因为 CRecordⅤiew 类派生于 CForm view类,同时又绑定了一个记录集,从而可以利用表单视图方便的显 示、修改、添加和删除记录。 CRecord view采用对话框数据交换技术(DDX)和记录字段 交换技术(RFX)自动实现表单控件中的数据和数据库中的字段数据的关联。在228一节 中将详细介绍 CRecordview的使用方法 CDBException类对象处理 MFC ODBC访问类在操作数据库的时候发生的异常,它 继承于 EXception类。 MFC ODBO类在操作数据库的时候会抛出 CDBException异常, 这些异常一定要处理,否则程序会不正常中止,给用户带来不便甚至带来巨大的损失。 第2章Ⅴ isual c++数据库开发技术介绍 ·31· 数据源的配置 在利用 MFC ODBC开发数据库应用程序的时候,需要配置ODBC数据源。可以利 用ODBC数据源管理器添加、修改和删除数据源。 如图2-1所示,选择“开始”|“程序”|“管理工具”|“数据源(ODBC)”命令,或 者打开控制面板中管理工具栏下的数据源(ODBC),弹出“ODBC数据源管理器”对话 框,选择“系统DSN”选项卡,如图2-2所示。 程序P 回附件 西管理工具 Telnet服器管理 广档(D -a AutOCAD 2000 本地安全策略 励 设置(5 服务 Dsγems 马计笪机管理 搜索O 回 Microsoft visual5hudn6.0·圍事件查看器 园 Microsoft Developer Network圆 数据源(DEN 帮助山H 性能 行(R stal Reports g 面組件服务 因race- Graham 图2-1ODBC数据源菜单示意图 國oDc教搬管理器 用尸I系统Is|文件驱程序跟踪连援池|关于 系统数据源巡 名称 区动程序 冻加血 删除 McYa雪oft M⊥c 配置C eP已1 QL Server ple Datab Mi ple Database 9 套订月已中可规结君途的信亲统 匚确定。取消应用)」帮助」 图2-2ODBC数据源管理器页面 单击“添加”按钮,弹岀“创建新薮据源”的对话框,从驱动程序列表中选择 Oracle in Radome90选项,如图2-3所示 ·32· Visual o++与 Oracle数据库编程案例 创建新数据源 选择您想为其安装数据源的驱动程序 名称 Mi crosoft FoxPro FP Driver * d bf) ft oDbc Microsoft Paradox-Treiber (* db Mi £ t i sual foxpro iris 怒國 匚完成职消」 图2-3选择驱动程序页面 单击“完成”按钮,进入 Oracle ODBC Driver Configuration对话框,在 Data Source Name文本框中输入要配置的数据源名称 ORADB(名称可仼意),在 TNS Service Name下 拉列表框中输入 ORADB(就是本地服务名,也可以单击 tNs Service Name下拉列表框 右边的下三角按钮,从中选取本地服务名 OrdB),如图2-4所示。 Oracle ODBC Driver Configuration ance Help Test connect Application oracle morkar ounds SqLServer Migration| Iranslation Options Enable Result Sets v Enable Query Timeout Read-Only Connection Batch Autocommit Mod Commit only if all statements succeed 图2-4 Oracle odbc数据源配置页面 单击 Test Connection按钮,弹出 Oracle odbc driver connect对话框。 Service name 为 ORADB,在 User name文本框中输入 System,在 Password文本框中输入 James,如 图2-5所示。 第2章Ⅴ isual c++数据库开发技术介绍 ·33· Oracle odBc driver connect 风 Service name R凸DB r name Sustem ancel d 凸bout 图2-5ODBC数据源连接测试页面 单击OK按钮,如果弹出 Connection successfu的信息提示框,表明一个ODBC数 据源配置成功了,数据源的名称为 OrdB。单击信息提示框的“确定”按钮,返回到 Oracle OdbC Driver Connect对话框,单击OK按钮,返回到“ODBC数据源管理器 对话框。从系统数据源列表中就可以看到已配置的 ORADB数据源,如图2-6所示。 oDBC教据源管理器 ?X 用尸8系统Is|文件动程序跟踪连援池|关于 系统数据源阎 名称 加 SQL Server 删除堡〕 Crystal Deposi tory Mi Globall Mic 配置c 工ag1 Serre Mi treme samp1 e Databa写白 Microsoft内cee写 reme samp1e1 atabase习 Mi crosoft Acces 1人斗1 ③、 确定 取消 用〕 帮助 图2-6系统DSN列表页面 单击“确定”按钮,退出ODBC数据源管理器。 数据库的连接 在进行 MFC ODBC数据库开发的时候,首选利用 CDatabase类对象建立一个和数 据源的连接,通过它就可以对数据库进行操作了。 在使用 MFC ODBC数据库开发的时候,需要引入 MFC ODBC数据库类的定义文件, 可以在系统工程下的 Stdafx. h头文件中使用 include语句引入 afdb. h文件,方法如下 #include <afdb. h> 对数据源进行操作之前需要定义一个 CDataBase对象。代码如下 CDatabase m db ·34· Visual o++与 Oracle数据库编程案例 利用 CDatabase类的 OpenEr函数建立和数据库的连接。函数的原型如下 virtual BOOL OpenEx( LPCtStR lpszConnectString, DWORD dwOptions=0) throw( CDBException, CMemory Exception lpszConnectstring是ODBC的连接字符串,连接字符串包括数据源名称、用户名和 用户密码。格式为“DSN= Oracle server source;:UID=123;PWD=abcl23”,DSN代表数 据源名称,UID代表数据库用户名,PWD代表数据库用户密码。对于本书中的数据源 名称为 OraDB,数据库用户名和数据库用户密码都为DBⅠ的连接字符串为 DSN= ORADB;UID=DBl;PWD=DB1”。在构造连接字符串的时候字符与字符(包括等 号和分号)之间不能有空格字符,如字符串“DSN= ORADB;UID=DB;PWD=DB1”中 包含了空字符,就不能够建立正确的连接。连接数据库的代码如下: TRY m db. Open Ex( DSN=ORADB; UID=DBl; PWD=DB I,,CDatabase: noOdbcDialog); CATCH(CDBEXception, ex) Afx Message Box(ex->m strError) AfxMessage Box(ex->m str StateNativeOrigin) AND CATCH(CMemory Exception,pEx) pEx->ReportErroro Afx Message Box( "memory exception") AND CATCH(CEXception,e TCHAR SZError[100] e->GetErrorMessage(szError, 100) Afx Message Box(SzError) END CATCH 其中的TRY、 CATCH、 AND CATCH、 END CATCH都是异常处理宏。从 OpenE 函数的原型中可以看出 Open Ex函数可能会抛出 CDB Exception和 CMemory Exception异 常,因而必须对这些异常进行处理。 查询记录 査询数据库中的记录需要使用 CRecordset类对象,它提供了从数据源中提取记录 集,并对记录集进行操作的方法。如果查询的记录是多条的,可以利用 CRecordset类的 Move, MoveNext, Move Prev, Move first和 Movelast方法移动记录到指定的位置 在操作记录集之前,需要定义一个 CRecordset类对象,并传入 CDatabase类的指针, 方法如下: CRecordset rs( &m db ) 或者在定义 CRecordset类对象之后,再把数据连接指针的地址赋给rs的数据库连 第2章Ⅴ isual c++数据库开发技术介绍 ·35· 接指针变量,方法如下 CRecordset rs; rsm database=&m db 然后调用 CRecordset的Open方法打开记录集,Open函数的原型如下: virtual BOoL Open( UINT nOpenType=AFX DB USE DEFAULT TYPE, LPCTSTR lpszsQL= NULL, dWord dwOptions-=none throw( CDBException, CMemory Exception oPentYpe为记录集的打开方式,包括 dynaset、 snapshot、 dynamic和 forwardLy 方式,具体的含义可以查看MSDN。 lpSzSQL可以是要打开记录集的SQL语句,也可以是一个表名或者是一个存储过程。 opTions一般情况下为空,更多的参数可以查看MSDN 在査询记录之前,在数据表 STUDENT INFO TAB中添加一条学生ID为2,姓名 为“李四”,性别为1,年龄为28的一条记录。查询表 STUDENT INFO TAB的所有 记录的代码如下 TRY& CString sql=“ Select* from STudent INFO taB” rsOpen(CRecordset: dynaset, sqD); int nld n Sex. nold CString strName inti=0 while (rs. ISEOFO& 1+ CDBVariant var rs Get Field Value((short)O, var, SQL C SLONG) if (var m dw Type ! DBVT NULL) nld= var m IVal var Clear rsGet Field Value(l, strName) rs Get Value(2, var, SQL C SLONG) if(var m dw Type!=DBVT NULL) n Sex varm lval: var Clear rs Get Value(3, var, SQL C SLONG) if (var m dw Type !=-DBVT NULL) nold= var m IVal van CString strField strField. Format("The Record %d VALUES: %d, %S, %d, %d r\n i, nld, strName, nSex, nOld) TRACE(StrField): rs MoveNext CATCH(CDBEXception, ex) ·36 Visual o++与 Oracle数据库编程案例 AfxMessage Box(ex->m strError) AfxMessage Box(ex->m strStateNative Origin) AND CATCH(CMemory Exception, pEx) pEx->ReportErrorO Afx Message Box ("memory exception; AND CATCH(CEXception, e) TCHAR SZError[ 100 e->GetErrorMessage(szError, 100) AfxMessage Box( SZError) END CATCH 利用open方法打开记录集之后,就可以遍历打开的记录集和获取记录集中的字段 值。遍历记录的时候,利用 CRecordset类的 ISEOF方法判断记录集是否到达末尾,如 果没有,可以继续访问记录集,否则退出 While循环。在获取字段数据的时候,有一个 非常重要的类 CDBVariant,它是 MFC ODBO中的一个处理数据库的变量类型类,能方 便的存取数据,而不用担心数据类型的转换。使用 GetFieldvalue函数获取字段的值 当访问完一条记录的时候,利用 MoveNext方法移动到下一条记录从而可以继续访问 添加记录 利用 MFC ODBC类添加新记录非常的方便,只需构造添加新记录的SQL语句,然 后调用 CDatabase类的 Execute SQL方法执行SαL语句,就能将新记录添加到数据库中 ExecuteSQL函数的原型如下 void ExecuteSQL( LPCSTR lpSZSQL throw( CDBException pSZsQL代表一个SQL语句,函数的返回类型是空,即 Execute SQL函数不返回数 据库操作结果。在表 STUDENT INFO TAB中添加一条学生I为1的记录的SQL语句 如下: Insert into STUDENT INFO TAB(STUDENT ID, STUDENT NAME, STUDENT SEX, STUDENT OLDⅤ ALUES(1,三,1,22) 利用 CDatabase类的 ExecuteSQL方法在数据库中添加新记录的代码如 TRY CString sql=""Insert into STUDENT INFO TAB(STUDENT ID STUDENT NAME STUDENT SEX TUDENT OLD)” ALUES(1,张三,1,22)” m db. ExecuteSQL(Sql) CATCH(CDBEXception, ex) 第2章Ⅴ isual c++数据库开发技术介绍 ·37· AfxMessage Box(ex->m strError) AfxMessage Box(ex->m strStateNative Origin) AND CATCH(CException,e TCHAR SZError[100]; e->GetErrorMessage(szError, 100) AfxMessage Box( SZError) END CATCH 查看数据库表 STUDENT INFO TAB中的数据,可以发现数据库表中增加了一条 STUDENT ID为1, STUDENT NAME为“李四”, STUDENT SEX为1, STUDENT OLD 为27的新记录 修改记录 修改记录的方法和添加记录的处理方法是一样的,只需构造一个修改数据库记录的 SQL语句。如要修改学生ID为1的记录,使该学生的年龄增加1,SQL语句如下 Update STUdENT INFO TAB SET STUDENT OLD- STUDENT OLD+1 Where Student id= 1 使用 CData Base类的 ExecuteSQL方法来修改学生记录的代码如下: TRY& CString sql=“ Update STUdENt INFO TAB” SET STUDENT OLD= STUDENT OLD+I Where STUdent ID=1”; m db. Execute SQL(Sql; CATCH(CDBEXception, ex) AfxMessage Box(ex->m strError Afx Message Box(ex->m str State NativeOrigin) AND CATCH(CEXception, e) TCHAR SZ Error[100] e->GetErrorMessage(szError, 100) AfxMessage Box(SzError) END CATCH 查看数据库表 STUDENT INFO TAB中的数据,学生ID为1的年龄已经修改为28。 删除记录 删除记录的方法和添加记录的处理方法也是相似的,只需构造一个删除数据库记录

...展开详情
所需积分/C币:9 上传时间:2011-12-29 资源大小:846KB
举报 举报 收藏 收藏
分享 分享

评论 下载该资源后可以进行评论 5

maguangjie 讲得是很实用的方法,很好,很有用。
2014-09-09
回复
qingjiaoqingjiao 很好的总结,谢谢分享!
2013-12-27
回复
ttyyuu2011 文档与标题严重不符。 只是ODBC和ADO的一些超简单的说明,和sql server有个毛线关系。
2013-11-28
回复
hht201_cen 很好,很详细,有ODBC和ADO的介绍,适合初学者
2013-09-06
回复
wfmsf 这类文档真心不错,搞数据库的人都知道,数据库的问题一大堆,如果能有一份综合问题文档该多好啊!求资源。。
2013-07-24
回复
VC连接SQL Server数据库小例子

此例子是使用VC2010 连接SQL SERVER数据库的源代码,也可以稍作修改用来连接ORACLE/MYSQL等其他数据库,例子非常简单。只要有了解过的同学,一看就能明白,谢谢惠存

立即下载
VC ADO连接SqlServer 程序

用ADO连接SqlServer数据库,代码易学,有注释,可查询表,修改,增加等。

立即下载
VC6连接sql server 2008的实例

VC6如何连接SQL SERVER 2008的实例,你下载后,将工程打开,然后把你的数据库的名字换上就可以了。

立即下载
VC连接SQL Server(\VC连接SQL Server)

\VC连接SQL Server\VC连接SQL Server\VC连接SQL Server\VC连接SQL Server

立即下载
VC连接 SQL Server

VC 连接 SQL Server,在网上搜集的一些文章。

立即下载
VC连接sql server数据库

>1.VC连接SQL Server数据库时,需要作哪些设置? ----------------------------------------------------- (1)初始化COM库,引入ADO库定义文件 (2)用Connection对象连接数据库 (3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。 (4)使用完毕后关闭连接释放对象。 >2.ADO、OLEDB、ODBC、DAO等几个数据库相关的词分别什么意思?有什么关系?

立即下载
用VC连接SQL Server做的简易聊天室

用VC链接SQL Server做的简易聊天室软件,内附WORD说明文档,说明开发过程

立即下载
VC Ado连接 sql server 数据库

VC Ado连接 sql server 数据库

立即下载
VC++连接SQL server2008

下载下来 稍微进行修饰就能读取或者存储数据

立即下载
vc访问sql server

vf利用ado方式访问连接sql server数据库,实现对数据库表的添加、删除、更新操作

立即下载
vc6.0连接SQL SERVER 实例

VC 6.0连接SQL SERVER 数据库实例,测试不有任何问题

立即下载
VC和JAVA连接SQL server,Oracle,MySql

VC和JAVA连接SQL server,Oracle,MySql

立即下载
VC++连接SQL Server 2005的方法总结

VC++连接SQL Server 2005的方法总结,ODBC,OLEDB,ADO等

立即下载
vc++2005连接sql server 2005程序

自己写的vc++连接sql server 2005 express程序 有什么问题可留言咨询或发邮箱sqq_1986@126.com 程序中需在连接语句处将data source改为你的机器名,并附加文件夹DB中的MDF文件到sql引擎上.

立即下载
VC 操作 sql server 数据库

VC操作 sql server数据库 利用ADO的方式连接sql server数据库 包含有增删改查操作 可以通过用户首字母搜索

立即下载
vc++ADO连接SQL Server 2005的一个简单例子

Vc++ 实现用ADO连接 SQL Server 2005 数据源和源程序都有 首先用SQL Server 2005导入数据源 然后点Linkdatabase 实现对数据源的配置。

立即下载
VC连接SQL2005

VC连接SQL2005 //使用ADO来连接SQL2005数据库,测试环境为VS2008+WIN7+SQL2005 主要代码如下: void ConnSqlDb() { ::CoInitialize(NULL);// 初始化COM库 _ConnectionPtr pConn(__uuidof(Connection)); //数据库连接对象 _RecordsetPtr pRst(__uuidof(Recordset)); //数据库记录集对象 _CommandPtr pCmd(__uuidof(Command)); //数据库命令对象 try { //

立即下载
VC+SQL SERVER学生信息管理系统

学生管理系统使用说明书 配置源程序 配置ODBC 运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server数据库。关键操作步骤如下: (1)单击“开始”按钮,选择“程序”→“管理工具”→“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,打开“用户DSN”选项卡。 (2)单击“添加”按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“SQL Server”。 (3)单击“完成”按钮,打开“创建到SQL Server的新数据源”对话框,在“名称”文本框中设置数据源名称为“mystudentsys”,在“描述”文本框设置数据源

立即下载
学生选课系统(VC+SQL Server)

该系统是基于VC的MFC程序,程序里包括数据库备份文件,数据库是使用的SQL Server。实现的功能有:登陆功能,学生选课,管理员添加课程,删除,查看,教师评分功能!运行前要先把数据库文件还原,然后建立一个名为Student的数据源。数据库连接使用的是ODBC连接,该程序是基于单文档的MFC程序!!!

立即下载
vc 使用ado 连接使用sql server 2000数据库

vc使用ado连接使用sql server 2000数据库的简单例子。 提供查询,插入,更新的基本操作,仅供开始学习者参考。

立即下载