使用MFC ODBC +SQL Server2005 实现数据库编程

原创 2007年09月20日 18:33:00

最近在项目中添加了用户数据管理功能,使用MFC ODBC连接SQL Server2005数据库。由于以前没有接触过数据库具体的实现,因此花了两周时间学习了数据库的知识,并实现了项目中的基本功能。感觉虽然存在很多问题,但还是有不少收获。下面总结一下,希望能够给跟我一样的新手们一个参考,大家共同学习!

要在应用中实现一个基本的数据库系统,除了要有数据库,还要将自己的程序与数据库之间建立连接,在程序中实现对数据库的访问。

使用MFC 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 UserInfo   WHERE (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);
            }

            
catch(CDBException * ex)
            
...{
                AfxMessageBox(ex
->m_strError);
                AfxMessageBox(ex
->m_strStateNativeOrigin);
            }

            
catch(CException * e)
            
...{
                TCHAR szError[
100];
                e
->GetErrorMessage(szError,100);
                AfxMessageBox(szError);
            }

      经过上面的这些步骤,我们已经能够在程序中实现数据库的基本操作了。自己也是新手,能力有限!就先说到这里吧。要学的东西还有很多~~

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

MFC ODBC 详细用法

主要内容: ? MFC ODBC将ODBC API封装在类CDatabase、CRecordSet、CFieldExchange、CRecordView和CDBException中 ? 使...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VS2013 MFC ODBC连接SQL SERVER数据库编程(一)

VS2013 MFC ODBC连接SQL SERVER数据库编程(一) 转载请注明出处:http://blog.csdn.net/my_acm/article/category/2616577 1、...
  • my_acm
  • my_acm
  • 2014年12月12日 23:49
  • 8608

VS2013 MFC ODBC连接SQL SERVER数据库编程(三)

VS2013 MFC ODBC连接SQL SERVER数据库编程(三) ODBC Crecordset的操作 数据库sql server的增删查改等操作...
  • my_acm
  • my_acm
  • 2014年12月18日 17:43
  • 4053

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MFC使用ODBC连接数据库

我们在MFC中可以很方便的对数据库进行操作。例如对SQL Server,我们在MFC的类向导中选择添加新类-->ODBC Consumer,然后选择我们已经在本机上安装的数据库实例并且也在ODBC数据...

使用MFC访问ODBC数据源的方法

MFC访问ODBC数据源定义了几个数据库类。在利用ODBC编程时,经常要使用到CDatabase(数据库类),CRecordSet(记录集类)和CRecordView(可视记录集类)。 其中: ...

MFC通过ODBC连接Mysql程序

先上图 经过这个礼拜的折腾,先是安装Mysql,学习下Mysql基本语句操作,学习下MFC操作,通过ODBC连接Mysql,参考各种网上的实例程序, 加上自己的不断调试,修改,终于...

MFC ODBC数据操作编程

为了简化开发人员编写数据库应用程序,VC++的在其基础类库(MFC)里对ODBC API进行了封装,实现了一个面向对象的数据库编程接口,使VC++的数据库变得更加容易。 本章首先对MFC ODBC的...

用VS2010建立解决方案,用于生成多个Dll的项目

转自:http://www.blueidea.com/microsoft/vs2010/2010_con/2010081301.htm 三层结构,会有多个项目。为了让各项目之间的关系反映在目录结构上所...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用MFC ODBC +SQL Server2005 实现数据库编程
举报原因:
原因补充:

(最多只允许输入30个字)