论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

如何遍历数据源中的表名称_VC技术_C语言教程

文章类别:C语言程序设计 | 发表日期:2010-6-20 9:09:14

如何遍历数据源中的表名称_VC技术_C语言教程

本文来自21视频教程网C语言频道

[问题的提出]
枚举表名称是个有用的功能,但在网上一时没有找到实现这种功能的代码,于是自己做了一个,特贴出源代码,一是为了资源共享,二是希望大家看看这段代码有没有不严格的地方,因为我对ODBC API不是太熟悉,谢谢!

[源代码]
// VC++6.0


#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <iostream>

// 测试一: ODBC数据源
// const char strDsn[] = "DSN=Test;";
// 测试二: 联接字符串
const char strDsn[] = "DBQ=F:\\Test.xls;Driver={Microsoft Excel Driver (*.xls)};";

void main( void )
{
    //分配环境句柄
    SQLHENV m_henv;
    if( SQL_SUCCESS == SQLAllocEnv(&m_henv) )
    {
        //分配连接句柄
        SQLHDBC m_hdbc;
        if( SQL_SUCCESS == SQLAllocConnect(m_henv,&m_hdbc) )
        {
             // 连接数据源
             UCHAR szConnectOutput[512];
             SWORD nResult;
             if( SQL_SUCCESS == SQLDriverConnect( m_hdbc,
                                                     NULL,
                                                     (UCHAR*)strDsn,
                                                     SQL_NTS,
                                                     szConnectOutput,
                                                     sizeof(szConnectOutput),
                                                     &nResult,
                                                     SQL_DRIVER_COMPLETE ) )
             {
                 SQLHSTMT hstmt = NULL;
                  if( SQL_SUCCESS == SQLAllocHandle(SQL_HANDLE_STMT,
                                                       m_hdbc,
                                                       &hstmt) )
                  {
                      if( SQL_SUCCESS == SQLTables( hstmt,
                                                       NULL,
                                                       0,
                                                       NULL,
                                                       0,
                                                       NULL,
                                                       0,
                                                       NULL,
                                                       0) )
                      {
                          SDWORD cb;
                          char szTable[255];
                          char szTableType[255];
                          SQLBindCol( hstmt, 3, SQL_C_CHAR, szTable, 255, &cb );
                          SQLBindCol( hstmt, 4, SQL_C_CHAR, szTableType, 255, &cb );
                          while( SQL_SUCCESS == SQLFetch(hstmt) )
                          {
                              std::cout << szTableType << " [" << szTable << "]" << std::endl;
                          }
                      }
                      SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
                 }
             }
             SQLDisconnect( m_hdbc );
        }
        SQLFreeHandl e( SQL_HANDLE_ENV, m_henv );
    }
}

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058