VC操作MySQL

一、MySQL的安装

二、VC6.0的设置

1、打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(我的是D:\Program Files\MySQL\MySQL Server 5.0\include)。

2、在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下还有debug和opt两个目录,建议选debug。(我的是D:\Program Files\MySQL\MySQL Server 5.0\lib\debug)。

3、在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。

4、在调用mysql函数的cpp文件中添加如下的内容:

#include "winsock.h"
#include "mysql.h"//头文件顺序不能颠倒

 

三、Vs2008的设置

1. 下载mysql安装包,记住安装的时候选择完全安装,不然是找不到mysql.h的

2. vs2008 中新建一个win32 console项目,右击项目,选择属性。
# 找到配置属性--->c/c++----->常规----->附加包含目录    添加要包含的目录,这里选择上面安装后的include和lib两个文件夹.
# 找到配置属性--->链接器----->常规----->附加库目录   添加要包含的目录,这里选择上面安装后的lib/opt文件夹
.
# 找到配置属性--->链接器----->输入----->附加依赖项   添加依赖项:libmySQL.lib

四、VC编程

MYSQL mysql; //数据库连接句柄

1、连接mysql

int ConnectMysql(LPCTSTRsip,LPCTSTRsuser,LPCTSTRspass,LPCTSTRsdbname,int sport)

{

     if( mysql_init(&mysql) == NULL )

     {

         Trace2Logger("初始化mysql失败!");

         return 0;

     }

//实例mysql_real_connect(&mysql,"127.0.0.1","root","","zkeco_db",17770,NULL,0)

     if(!mysql_real_connect(&mysql,sip,suser,spass,sdbname,sport,NULL,0))

     {

         Trace2Logger("连接mysql失败:%s",mysql_error(&mysql)); 

         return 0;

     }

     else

     {

         Trace2Logger("数据库连接成功");

         return 1;

     }

}

2、实现添加功能

char sqlinsert[1024] ={0};

sprintf(sqlinsert,"INSERT INTO acc_monitor_log(id, time,door_id, door_name,event_type) VALUES(%d, '%s' ,'%s', '%s' , %s);",maxid,devds[0] ,doorid,doorname, devds[4]);

     if(0==mysql_query(&mysql,sqlinsert))

     {

         Trace2Logger("插入刷卡记录:%s成功",sqlinsert);

     }

     else

     {

         Trace2Logger("插入刷卡记录:%s失败:%s",sqlinsert,mysql_error(&mysql));

}

3、实现修改功能

CString strUsername,strList,strRemark,strSQL,str_PreName;
strSQL.Format("update mytable set username=\'%s\',visitelist=\'%s\',                              remark=\'%s\' where username=\'%s\'",strUsername,strList,strRemark,str_PreName);
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)
{
AfxMessageBox("修改失败");
}

4、实现删除功能

CString strSQL;
strSQL.Format("delete from mytable where username=\'%s\'",str_PreName);//必须要有\'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)
{
AfxMessageBox("删除失败");
}

5、实现读取功能

//显示刚才插入的数据

     CString sqlstr="SELECT * FROM vctest";

     CString loginfo="";

     MYSQL_RES *result=NULL;

     if(0==mysql_query(&mysql,sqlstr))

     {

         loginfo="mysql_query() select data succeed";

         MessageBox(loginfo);

         //一次性取得数据集

         result=mysql_store_result(&mysql);

        

         //取得并打印行数

         int rowcount=mysql_num_rows(result);

         loginfo.Format("row count=%d",rowcount);

         MessageBox(loginfo);       

        

         //取得并打印各字段的名称

         unsigned int fieldcount=mysql_num_fields(result);

         MYSQL_FIELD *field=NULL;

         loginfo="";

         for(unsignedint i=0;i<fieldcount;i++)

          {

              field=mysql_fetch_field_direct(result,i);

              loginfo=loginfo+(field->name)+",";

         }

         MessageBox(loginfo);       

        

         //打印各行

         MYSQL_ROW row=NULL;

         row=mysql_fetch_row(result);

         loginfo="";

         while(NULL!=row)

         {

              for(inti=0; i<fieldcount;i++)

              {

                   loginfo=loginfo+(row[i])+",";

              }

              loginfo=loginfo+";";

              row=mysql_fetch_row(result);

         }

         MessageBox(loginfo);

     }   

     else {MessageBox("mysql_query() select data failed");       }

6、关闭数据库

mysql_close(&mysql);//最好写到OnDestroy()函数中

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值