网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
在VC++中用ODBC访问SQL Server数据库
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

  MFC为连接数据源提供了一个数据库类CDatabase,通过它我们可以非常方便地与数据源建立连结:

  //m_db是CDatabase的对象

  //m_szUserId,m_szPassword是CString对象,为访问数据源的用户名和密码

       CString str;

       str = _T("DSN=xhmtest;UID=")+m_szUserId+_T(";PWD=")+m_szPassword;

       if (! m_db.OpenEx(str, CDatabase::noOdbcDialog ) ){

              AfxMessageBox("打开数据源失败");

}

  另外,如果我们想对数据源进行操作,就可以利用打开的CDatabase对象执行SQL语句实现。如新建一张表:

    str = "CREATE TABLE TableDemo (Column1TEXT, Column2 NUMBER)";

    m_db.ExecuteSQL(sSql);

 

3.得到数据库的结构信息

  在VC++中可以单独利用ODBC API获取数据库的结构信息,但方法非常复杂,各种参数也不易理解,且返回的结果不易获取。MFC中也没有为应用程序开发者得到数据库结构信息而提供单独的类。但是我们还是可以通过一些已有的方法方便地获得数据库的结构信息。

3.1 得到数据库中的表

  利用ODBC API函数SQLTables可以得到数据库中的表信息,但使用不易。

  在MSDN的sample中有一个catalog例程,它示范了如果得到一个数据库的表信息和表中的字段信息,该程序中有两个非常实用的类:Ctables和Ccolumns。其中CTables继承CRecordset类,通过非常巧妙的方法封装了SQLTables函数,并将结果集存于CRecordset类,方便获取。

程序中我们可以这样应用:

              //m_db是已经打开的CDatabse对象,

              //m_strTableOwner是CComboBox对象

       CTables rs(&m_db);

       rs.Open(NULL, NULL, NULL, "TABLE");

       CString strTableRef;

       m_combTable.ResetContent();

       while (!rs.IsEOF())

       {

              strTableRef = _T("[");

              if (!rs.m_strTableOwner.IsEmpty())

                     strTableRef += rs.m_strTableOwner + _T("].[");

              strTableRef += rs.m_strTableName + _T("]");

              m_combTable.AddString(strTableRef);

              rs.MoveNext();

       }

       rs.Close();

在CTables对象Open方法第四个能数指定“TABLE”是指返回库中的表,当该参数为“SYSTEM TABLE”时返回系统表,当为NULL时,返回所有表。

3.2 得到表中字段结构

    得到表中字段结构有三种具体实现方式:

  ①直接利用ODBC API 函数SQLColumn;其实现也同样复杂。

 

  • 上一篇资讯: VC常用控件简介
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号