vc++ 6.0 连接 mysql数据库

1、ODBC方式

首先下载mysql-connector-odbc-5.1.7-win32.msi安装mysql的odbc驱动。

配置odbc数据源:在xp中,开始-控制面板-性能和维护-管理工具-数据源(odbc)。

在系统DSN选项卡下单击添加按钮,选择mysql odbc 5.1 driver。设置名称为mysql,数据库为test,用户名为root,密码为空。server为127.0.0.1,port为3306.点击test按钮,提示成功即可。

进行ODBC数据库开发,需要引入afxdb.h文件

#include <afxdb.h>

void CConnectSqlServerDlg::OnButton1() 
{
    CDatabase m_db;
    CRecordset RS;
    try
    {
        m_db.OpenEx("DSN=mysql;UID=root;PWD=",CDatabase::noOdbcDialog);
        RS.m_pDatabase = &m_db;
        //快照(Snapshot) 和动态集(Dynaset)两种,CRecordset类对这两者都支持。
        //这两种记录集的不同表现在它们对别的应用改变数据源记录采取了不同的处理方法。
        RS.Open(CRecordset::snapshot,"select count(*) from t_customer");
        while(!RS.IsEOF())
        {
            CString str;
            RS.GetFieldValue((short)0,str);
            AfxMessageBox(str);
       RS.MoveNext(); //记录集向下滚动,到下一条数据。 }
//CString sql="insert into ..."; //m_db.ExecuteSQL(sql); RS.Close(); } catch (CException* e) { RS.Close(); TCHAR szerror[1000]; e->GetErrorMessage(szerror,1000); AfxMessageBox(szerror); } }

2、通过MySQL自己的API函数进行连接

使用API的方式连接,需要加载mysql的头文件和lib文件。


在VC++6.0中要想把做一下两步准备工作才可以。
(1)Tools->Options->Directories->Include files中添加C:\Program Files\MySQL\MySQL Server 5.5\include
(2)把C:\Program Files\MySQL\MySQL Server 5.5\liblibmysql.lib文件拷贝到C:\Program Files\Microsoft Visual Studio\VC98\Lib目录下。

然后在头文件里包含以下内容:
#include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;

#pragma comment(lib,"libmysql.lib")

void CConnectSqlServerDlg::OnButton2() 
{
    // TODO: Add your control notification handler code here
    MYSQL m_sqlCon;
    string sqlstr;
    MYSQL_RES *result = NULL;

    try 
    {  
        mysql_init(&m_sqlCon);  
        // localhost:服务器 root为账号密码 test为数据库名 3306为端口  
        if(!mysql_real_connect(&m_sqlCon, "localhost","root","","test",3306,NULL,0))  
        {  
            AfxMessageBox(_T("数据库连接失败!"));  
            //return FALSE;  
        }
        else
        {
            //AfxMessageBox(_T("数据库连接成功!")); 
            sqlstr = "select count(*) FROM t_customer";

            if (0 == mysql_query(&m_sqlCon, sqlstr.c_str())) {
                result = mysql_store_result(&m_sqlCon);
                MYSQL_ROW row = NULL;
                row = mysql_fetch_row(result);
                while (NULL != row) 
                {
                    CString str = row[0];
                    AfxMessageBox(str);
                    row = mysql_fetch_row(result);
                }
            }
        }
        //return TRUE;  
    }  
    catch (CException* e)  
    {  
        mysql_close(&m_sqlCon);   
        TCHAR szerror[1000];
        e->GetErrorMessage(szerror,1000);
        AfxMessageBox(szerror);
    } 
    
    mysql_free_result(result);
    mysql_close(&m_sqlCon);
    mysql_server_end();
}

 

转载于:https://www.cnblogs.com/goldenland/archive/2013/05/22/3092819.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值