MFC怎么连接数据库

MFC怎么连接数据库,第1张

mfc一般用到的数据库是access ,SqlServer, sqlite

另外Oracle虽然不错但是跟Java比较合适,mfc稍微麻烦点

连接方式有ado,odbc,小型数据库的话我个人更推荐前者,因为odbc需要在一台电脑上进行配置,可移动性很差,而ado的话只要一个主程序一个数据库就可以拖到另一台电脑上直接用(仅限于access)

SQLite比较特殊,有自己的连接和 *** 作方法,全部集成在一个头文件里,使用起来跟access SqlServer之类的有很大的不同,编程起来难度倒是相差不多,适合纯c的嵌入式开发

如果你们项目不大,数据库小,需要可移动性高的话 我推荐ado连access我这有例子可以给你参考,另外ado连SqlServer我这也有可以给你,其他的目前还没有,所以帮不上了

给你一堆,挑几个喜欢的吧!

钱能 c++程序设计教程 第二版 高清PDF版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166018

Essential C++ 中文版+英文版 侯捷译

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=167578

C++高级编程参考手册

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145562

C++ Primer 第三版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145858

More Effective C++ 简体中文版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146871

Sams出版 C++ Unleashed

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163617

C++ GUI Programming with QT4

http://bbs.topsage.com/dispbbs.asp?boardID=119&ID=146734

Visual C++ 6傻瓜书 快速参考

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173217

Visual C++ 6.0 编程实例与技巧(PDF中文版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173210

Visual C++ 21天自学教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173174

跟我学Visual C++ 6

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174442

Visual C++ 6 数据库编程 21天自学教程 CHM

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173173

The C++ Programming Language 第三版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175018

Special Edition Using Visual C++ 6

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173171

Professional MFC with VC 6

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166005

Practical C++ Programming

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173744

Cross-Platform Development in C++

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174168

Iterative UML Development Using VC++ 6

http://bbs.topsage.com/dispbbs.asp?boardID=124&ID=174831

Ace Programmer's Guide

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174449

Visual C++高级界面特效制作百例

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=168630

精通GDI+编程 清华大学出版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=170571

孙鑫C++视频教程 rmvb格式 全20CD完整版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156290

中山大学蔡培兴 C++语言视频教程 全51讲 精品推荐

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158073

access我没连过 我只连过sql2000

我把我那时候找到的资料发上来给你参考下 看看可以借鉴不

MFC 连接SQL SERVER(ODBC方式)

1、建立数据库

这一步比较简单,直接打开SQL Server Management Studio,根据自己需要设计数据库中的表,及其之间的依赖关系等等!要想设计一个完美的数据库,就必须了解数据库的基本知识。这里不再具体说了。这里我们假设我们的数据库名字为Test01

2、配置数据源

数据库设计建立完成后,它只是单独的几张表,我们并不能在程序中去访问它,因为程序并不知道数据库在哪里。因此,就要在应用程序跟数据库之间建立连接。

配置数据源说通俗了就是为数据库创建一个对外的窗口,应用程序通过这个窗口来访问数据库中的数据。具体配置步骤为:

1) 打开 控制面板--〉管理工具--〉数据源,在用户DSN面板选择 “添加”

2) 在数据源驱动程序中选择 “SQL Server” --〉完成,即打开 “创建到SQL Server 的新数据源”

3) 在“数据源名称”中填入名称,我们填 TestSQL01,然后选择 服务器,在其中选择要连接到的SQL Server服务器。(如果你电脑的SQL Server服务打开的话,就会有自己的主机名。或者选择网络上的某个SQL Server。

4) 点击 下一步 配置认证信息

5) 配置完后点击 下一步, 选中 “更改默认的数据库为”复选框,在下拉中选择自己刚才建立的要连接的数据库。 (这一步很重要,一般一个Server上会有多个数据库,如果不更改数据源的默认数据库,你 建立的数据源将连接到默认的数据库,这样就会造成程序中执行SQL语句时“对象名无效”的错误,即找不到你指定的数据表等)

6) 选择完数据库后直接 下一步--〉完成 就完成了数据源的配置。接下来会出现配置数据源的基本信息,可以通过 “测试数据源”来测试数据源是否配置成功。

3、 数据库的连接

建立完数据库,又配置好了数据源,接下来就可以在程序中通过数据源来访问数据库了。

1) 首先要在程序中引入MFC ODBC数据库的定义文件#include <afxdb.h>

2) 定义CDataBase数据库对象, CDataBase m_db

3) 利用CDataBase类的OpenEx函数建立和数据库的连接;

m_db.OpenEx(_T("DSN=TestSQL01"),CDatabase::noOdbcDialog)

/*这里的TestSQL01 即为步骤2中建立的数据源,然后根据OpenEx函数格式填入参数,主要是用户名、密码之类,这里没有设置,所以就没有*/

具体连接还要捕捉OpenEx可能抛出的异常:

TRY

{

m_db.OpenEx(_T("DSN=TestSQL01"),CDatabase::noOdbcDialog)

rs.m_pDatabase = &m_db

}

CATCH(CDBException,ex)

{

AfxMessageBox(ex->m_strError)

AfxMessageBox(ex->m_strStateNativeOrigin)

}

AND_CATCH(CMemoryException,pEx)

{

pEx->ReportError()

AfxMessageBox(_T("memory exception"))

}

AND_CATCH(CException,e)

{

TCHAR szError[100]

e->GetErrorMessage(szError,100)

AfxMessageBox(szError)

}

END_CATCH

4、 数据库 *** 作

在完成了上面的步骤后,就可以使用SQL语句对数据库进行 *** 作了。基本的 *** 作有 查询、添加、修改、删除等。这里主要说一下查询,其他 *** 作都与添加步骤类似。

1)查询

查询的基本步骤可以看下面的这段代码:

CString sql = _T("SELECT Password FROM UserInfoWHERE (UserID = 123“) //要执行的SQL语句

CString psd //存放查询结果

TRY

{

rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql) //打开查询记录

rs.GetFieldValue(_T("Password"),psd) //得到数据

}

CATCH(CDBException,ex)

{

AfxMessageBox(ex->m_strError)

AfxMessageBox(ex->m_strStateNativeOrigin)

}

AND_CATCH(CMemoryException,pEx)

{

pEx->ReportError()

AfxMessageBox(_T("memory exception"))

}

END_CATCH

2)插入

相对于查询,插入、删除、更改 *** 作就简单得多了。CString sql = _T("USE Test01 INSERT UserInfo(UserID,UserName) VALUES(" 123, 'Bob')

try

...{

m_db.ExecuteSQL(sql)

}

..............


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10818336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存