djy5043 发表于 2008-6-19 14:41

vc连接数据库

请问vc应该如何连接数据库
连接之后又如何把数据库里的数据存入自己定义的变量里
是用控件还是ADO编程,还是ODBC什么的
哪个比较好用
有没有这方面的资料示例啊
我用的是vc2005

lyd253261362 发表于 2008-6-19 20:09

参考!

ado和odbc两种方式都可以连接数据库,其实,基本上都有固定的模式代码。
odbc又分为mfc odbc 和odbc api ,可以根据自己实际情况,选取不同方式连接数据库。
下面我说一下:
odbc api基本步骤:
1.为odbc分配环境句柄
2.分配一个连接句柄
3.连接数据库
4.用SQL分配一个语句句柄
5.执行该命令返回结果集
6.断开数据源的连接
7.释放odbc资源
下面是参考代码:
//连接oracle数据库
[code]
SQLHENV  henv=SQL_NULL_HENV;//环境变量
SQLHDBC  hdbc=SQL_NULL_HDBC;//连接句柄
SQLHSTMT hstmt=SQL_NULL_HSTMT;
SQLHSTMT dfhstmt=SQL_NULL_HSTMT;

//********************* 第一步:为ODBC分配环境变量****************
        if(SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv)!=SQL_SUCCESS)
        {
                //return FALSE;
                AfxMessageBox("henv");
                       
        }
        //********************* 第二步:设置*******************
        if (SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER)!=SQL_SUCCESS)
        {
                //return FALSE;
                AfxMessageBox("set henv");
        }
        //********************* 第三步:分配一个连接句柄
        if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)!=SQL_SUCCESS)
        {
                //return FALSE;       
                AfxMessageBox("hdbc");
        }
        //********************连接oracle--------------------------
         SQLFreeHandle(SQL_HANDLE_STMT,dfhstmt);
        //释放相关资源
        SQLFreeHandle(SQL_HANDLE_STMT,hstmt);   
        SQLDisconnect(hdbc);   
        SQLFreeHandle(SQL_HANDLE_DBC,hdbc);   
        SQLFreeHandle(SQL_HANDLE_ENV,henv);

[/code]

djy5043 发表于 2008-6-27 17:51

非常感谢
很详细

页: [1]

编程论坛