WEB开发网
开发学院软件开发VC 通过ODBC API实现对数据库的访问 阅读

通过ODBC API实现对数据库的访问

 2008-08-09 19:26:16 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 自从初次接触到vckbase,在里面学了很多东西,通过ODBC API实现对数据库的访问,这跟大家无私的奉献是离不开的,在数据库方面的技术文章中,连接完数据库后,可以在数据库中执行SQL语句来实现对数据库表的查询,很多篇幅是用来介绍ADO或者DAO的访问方式,而关于用ODBC API访

本文示例源代码或素材下载

自从初次接触到vckbase,在里面学了很多东西,这跟大家无私的奉献是离不开的。在数据库方面的技术文章中,很多篇幅是用来介绍ADO或者DAO的访问方式,而关于用ODBC API访问数据库的文章却少之又少。虽然用ODBC访问数据库比较麻烦,但却很灵活,效率高,又便于了解ADO、DAO的底层封装方式,对提升整体软件思想是很有好处的。

现在就数据库的操作类型来谈谈ODBC API的使用。

1、配置数据源。例:

SQLRETURN retcode;
Retcode = SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"SQL Server",
      
      "DSN=masterServer=(local)Database=master");
      
if(!retcode)
      
{
      
  AfxMessageBox("系统数据源配置失败!");
      
  return FALSE;
}

2、连接数据库。连接数据库看似要写的很多,其实只要写一次以后,仅仅复制一下,改下数据库名、用户名和密码即可。例:

retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv) ;
      
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
      
{
      
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
      
   if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
      
    {
      
      retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
      
      if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
      
        {
      
         retcode = SQLConnect(hdbc, (SQLCHAR*)(LPCTSTR)m_strDSN, SQL_NTS,
                
(SQLCHAR*)(LPCTSTR)m_strUSER, SQL_NTS,
      
                   (SQLCHAR*)(LPCTSTR)m_strPWD, SQL_NTS);
      
         if (!(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO))
      
            {
      
              AfxMessageBox("数据库连接失败!") ;
      
              SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
      
              SQLFreeHandle(SQL_HANDLE_ENV, henv);
      
              return FALSE;
      
             }
      
         else
      
            {
      
              m_bLink = TRUE;
      
              return TRUE;
      
            }
      
          }
      
      else
      
       {
      
         AfxMessageBox("连接句柄分配出错") ;
      
         SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
      
         SQLFreeHandle(SQL_HANDLE_ENV, henv);
      
         return FALSE;
      
       }
      
     }
      
   else
      
    {
      
     AfxMessageBox("属性设置出错!") ;
      
     SQLFreeHandle(SQL_HANDLE_ENV, henv);
      
     return FALSE;
      
     }
      
   }
      
 else
      
  {
      
    AfxMessageBox("环境变量分配出错!") ;
      
    SQLFreeHandle(SQL_HANDLE_ENV, henv);
      
    return FALSE;
      
}

3、表操作。连接完数据库后,可以在数据库中执行SQL语句来实现对数据库表的查询。其具体操作类型又可以分成删除表、创建表、修改表等。例:

1 2 3  下一页

Tags:通过 ODBC API

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接