c++连接数据库 在vc6.0
配置相关环境
我的mysql安装路径为E:\mysql-5.5.28-win32所以要在VC中设置include路径和lib的路径。
添加MySql的include目录到VC工作台中Project->Settings->C/C++->Category->Preprocessor->Additional include directories中添加 E:\mysql-5.5.28-win32\include。
添加lib的路径:Tools->Options->Directories中选择Library files,然后添加lib的目录:E:\mysql-5.5.28-win32\LIB然后在Project->Settings->Link中,
添加 libmysql.lib 到Object/libray modules中
mysql相关知识点
#include <windows.h>
#include <iostream>
#include <mysql.h>
#include <stdio.h>
#include <string.h>
using namespace std;
int main( int argc, char * argv[] )
{
//connection params
char *host = "localhost";
char *user = "root";
char *pass = "";
char *db = "test";
MYSQL *mysql;
MYSQL_RES *res; //结果集
MYSQL_FIELD * fd ;
MYSQL_ROW row;
char szSqlText[500]="";
int i;
int tcreate=0;//表存在为0,表不存在为1
if ( (mysql = mysql_init((MYSQL*) 0))
//初始化数据结构
&& mysql_real_connect( mysql, host, user, pass, db, 0, NULL, 0 ) )
{
mysql_set_character_set(mysql,"utf8");
//connection character set
//wait for posibility to check system/mysql mysqlets
if(tcreate) ///////
{
sprintf(szSqlText, //构造SQL语句
"create table mytable"
//新建一张表
"(time datetime, s1 char(6), "
"s2 char(11), s3 int, s4 int)");
if (mysql_query( mysql, szSqlText))
//执行SQL语句
{//执行SQL语句出错
cout<<"Can't create table:"<<mysql_error(mysql) << endl;
mysql_close( mysql ) ;
return FALSE ;
}
cout<<"建表成功!"<<endl;
}
sprintf(szSqlText,"insert into mytable values(now(),'Test','MySQLTest',2000,15)");
if (mysql_query( mysql, szSqlText))
{//执行SQL语句出错
cout<<"Can't insert data to table执行sql出错"<<mysql_error(mysql) << endl;
mysql_close( mysql) ;
return FALSE ;
}
sprintf(szSqlText, "select * from mytable");
if (mysql_query( mysql, szSqlText))
//进行数据检索
{
//执行SQL语句出错
mysql_close( mysql ) ;
return FALSE ;
}
else
{
res = mysql_store_result( mysql) ;
//取得查询结果
i = (int) mysql_num_rows( res ) ;
//取得有效记录数
cout<<"Query: "<<szSqlText<<"\n"<<i<<" records found:"<<endl;
for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
cout<<fd->name<<"\t";
cout<<endl;
//输出各字段名
while(row = mysql_fetch_row( res ))
//依次读取各条记录
cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<endl;
mysql_free_result( res ) ;
}
}
else
{//连接数据库出错
cout<<"Can't connect to the mysql server不能连接 "<<mysql_error(mysql) << endl;
mysql_close( mysql ) ;
return FALSE ;
}
mysql_close( mysql ) ;
return TRUE ;
}
摘自:http://bbs.csdn.net/topics/230075782
mysql相关知识点
/查看MySQL版本
mysql> select version();
//显示所有数据库
mysql> show databases;
//使用数据库
mysql> use database_name;
//显示所有数据表
mysql> show tables;
//显示数据表结构
mysql> describe table_name;
//创建数据库
mysql> create database database_name;
//删除数据库
mysql> drop database database_name;
//创建数据表
mysql> use database_name;
mysql> create table table_name (字段名 VARCHAR(20), 字段名 CHAR(1)
);
//删除数据表
mysql> drop table table_name;
//查询记录
mysql> select * from table_name;
//导入.sql文件
mysql> use database_name;
mysql> source c:/mysql.sql
//修改root密码
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
//退出
mysql> quit
c++连接数据库 在vc6.0的更多相关文章
- vc6.0连接mysql数据库
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本.. 二.VC6.0的设置 (1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- vc6.0 通过ADO(udl)连接sql 2008
转载声明:本文转自http://blog.sina.com.cn/s/blog_7328b9dd0100pkbw.html茗之的博客 首先声明:本文是针对vc与sql菜鸟的,高人请让路. 本文讲解 ...
- Vc6.0头文件的定义
Vc6.0头文件的定义 #ifndef __HEADER__ #define __HEADER__ int fun(int i); #endif
- VC6.0中友元函数无法访问类私有成员的解决办法
举个例子: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #inclu ...
- vc6.0如何显示行号以及出现版本不兼容问题
有时编译时,提示某某行有错,但是要定位到某一行的话,如果在编辑页面能够将行号显示出来,查找也就更方便了,下面我来介绍一下让VC6.0显示行号的方法. 工具/原料 VC6.0.显示行号的插件 方 ...
- 使用VC6.0创建和运行C程序的方法
使用VC6.0可以有快捷的方式创建C程序,对于初学者,建议按照如下方式创建.先创建一个工作区,然后创建工程,最后在工程中创建源文件文件.理解工作区.工程与文件之间的关系.
- 在MFC中使用GDI+的一般方法,以VC6.0编译器为例
1.载解压GDI+开发包: 2.正确设置include & lib 目录: 设置如下:VC6.0编译器菜单Tools->Options->Directories中添加inlude ...
- [MFC] VS2013版本MFC工程移植到VC6.0上
:VS虽号称“宇宙最强IDE”,但是有时候安装包太大,动不动就几个G:而且安装好之后也会多出很多几乎很难用到的部分,这对于那些处女座的人如何忍受!本文不是吐槽,而是给出一种在应急场景下,不用安装新版本 ...
- [OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析
一. 建立工程 O(∩_∩)O~上一节介绍了一种非常容易的OpenGL的搭建方法,这一节将就上一节介绍的VC6.0企业版自带的OpenGL Win32 Application建立一个模板工程,并分析这 ...
随机推荐
- [js高手之路] 设计模式系列课程 - DOM迭代器(2)
如果你对jquery比较熟悉的话,应该用过 eq, first, last, get, prev, next, siblings等过滤器和方法.本文,我们就用迭代设计模式来封装实现,类似的功能 < ...
- border-radius:50%和100%究竟有什么区别
之前写css圆形时总是直接设置border-radius为50%.后来看某css动画网站时发现作者都是用的100%.遂去了解了一下2者的差别. border-radius的值是百分比的话,就相当于盒子 ...
- 转自知乎(JAVA后台开发可以纯粹用JAVA SE吗?)
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:巴多崽链接:http://www.zhihu.com/question/29663744/answer/45154839来源: ...
- Quartz学习——Quartz大致介绍(一)
1. 介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,"任务进度管理器"就是 ...
- 【bzoj1103】【POI2007】【大都市】(树状数组+差分)
在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之 ...
- I/P/B/SI/SP帧和PTS/DTS的关系
I frame:帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象.I帧可以看成是 ...
- Win下安装虚拟机(Linux)
**********************win下体验linux**************************************By熟知宇某 一.先说说win10和win8系统下的hyp ...
- 文件上传之--内存溢出(System.OutOfMemoryException)
两周前就想把这点经验记录下来了,由于拖延症上身,直到刚才突然想起这件未完成的任务,今天是1024,在这个特别的日子里,祝所有程序猿兄弟姐妹们节日快乐! 上传功能一直很正常,直到上传了个500多兆的文件 ...
- iOS的异步绘制--YYAsyncLayer源码分析
iOS的异步渲染 最近看了YYAsyncLayer在这里总结一下.YYAsyncLayer是整个YYKit异步渲染的基础.整个项目的Github地址在这里.你可以先下载了一睹为快,也可以跟着我一步一步 ...
- servlet 相应头重定向
package demoservllet; import java.io.IOException;import javax.servlet.ServletException;import javax. ...