vc调用mysql数据库操作例子
这里归纳了C API可使用的函数
函数 |
描述 |
mysql_affected_rows() |
返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。 |
mysql_autocommit() |
切换 autocommit模式,ON/OFF |
mysql_change_user() |
更改打开连接上的用户和数据库。 |
mysql_charset_name() |
返回用于连接的默认字符集的名称。 |
mysql_close() |
关闭服务器连接。 |
mysql_commit() |
提交事务。 |
mysql_connect() |
连接到MySQL服务器。该函数已不再被重视,使用mysql_real_connect()取代。 |
mysql_create_db() |
创建数据库。该函数已不再被重视,使用SQL语句CREATE DATABASE取而代之。 |
mysql_data_seek() |
在查询结果集中查找属性行编号。 |
mysql_debug() |
用给定的字符串执行DBUG_PUSH。 |
mysql_drop_db() |
撤销数据库。该函数已不再被重视,使用SQL语句DROP DATABASE取而代之。 |
mysql_dump_debug_info() |
让服务器将调试信息写入日志。 |
mysql_eof() |
确定是否读取了结果集的最后一行。该函数已不再被重视,可以使用mysql_errno()或mysql_error()取而代之。 |
mysql_errno() |
返回上次调用的MySQL函数的错误编号。 |
mysql_error() |
返回上次调用的MySQL函数的错误消息。 |
mysql_escape_string() |
为了用在SQL语句中,对特殊字符进行转义处理。 |
mysql_fetch_field() |
返回下一个表字段的类型。 |
mysql_fetch_field_direct() |
给定字段编号,返回表字段的类型。 |
mysql_fetch_fields() |
返回所有字段结构的数组。 |
mysql_fetch_lengths() |
返回当前行中所有列的长度。 |
mysql_fetch_row() |
从结果集中获取下一行 |
mysql_field_seek() |
将列光标置于指定的列。 |
mysql_field_count() |
返回上次执行语句的结果列的数目。 |
mysql_field_tell() |
返回上次mysql_fetch_field()所使用字段光标的位置。 |
mysql_free_result() |
释放结果集使用的内存。 |
mysql_get_client_info() |
以字符串形式返回客户端版本信息。 |
mysql_get_client_version() |
以整数形式返回客户端版本信息。 |
mysql_get_host_info() |
返回描述连接的字符串。 |
mysql_get_server_version() |
以整数形式返回服务器的版本号。 |
mysql_get_proto_info() |
返回连接所使用的协议版本。 |
mysql_get_server_info() |
返回服务器的版本号。 |
mysql_info() |
返回关于最近所执行查询的信息。 |
mysql_init() |
获取或初始化MYSQL结构。 |
mysql_insert_id() |
返回上一个查询为AUTO_INCREMENT列生成的ID。 |
mysql_kill() |
杀死给定的线程。 |
mysql_library_end() |
最终确定MySQL C API库。 |
mysql_library_init() |
初始化MySQL C API库。 |
mysql_list_dbs() |
返回与简单正则表达式匹配的数据库名称。 |
mysql_list_fields() |
返回与简单正则表达式匹配的字段名称。 |
mysql_list_processes() |
返回当前服务器线程的列表。 |
mysql_list_tables() |
返回与简单正则表达式匹配的表名。 |
mysql_more_results() |
检查是否还存在其他结果。 |
mysql_next_result() |
在多语句执行过程中返回/初始化下一个结果。 |
mysql_num_fields() |
返回结果集中的列数。 |
mysql_num_rows() |
返回结果集中的行数。 |
mysql_options() |
为mysql_connect()设置连接选项。 |
mysql_ping() |
检查与服务器的连接是否工作,如有必要重新连接。 |
mysql_query() |
执行指定为“以Null终结的字符串”的SQL查询。 |
mysql_real_connect() |
连接到MySQL服务器。 |
mysql_real_escape_string() |
考虑到连接的当前字符集,为了在SQL语句中使用,对字符串中的特殊字符进行转义处理。 |
mysql_real_query() |
执行指定为计数字符串的SQL查询。 |
mysql_refresh() |
刷新或复位表和高速缓冲。 |
mysql_reload() |
通知服务器再次加载授权表。 |
mysql_rollback() |
回滚事务。 |
mysql_row_seek() |
使用从mysql_row_tell()返回的值,查找结果集中的行偏移。 |
mysql_row_tell() |
返回行光标位置。 |
mysql_select_db() |
选择数据库。 |
mysql_server_end() |
最终确定嵌入式服务器库。 |
mysql_server_init() |
初始化嵌入式服务器库。 |
mysql_set_server_option() |
为连接设置选项(如多语句)。 |
mysql_sqlstate() |
返回关于上一个错误的SQLSTATE错误代码。 |
mysql_shutdown() |
关闭数据库服务器。 |
mysql_stat() |
以字符串形式返回服务器状态。 |
mysql_store_result() |
检索完整的结果集至客户端。 |
mysql_thread_id() |
返回当前线程ID。 |
mysql_thread_safe() |
如果客户端已编译为线程安全的,返回1。 |
mysql_use_result() |
初始化逐行的结果集检索。 |
mysql_warning_count() |
返回上一个SQL语句的告警数。 |
做了下简单的封装
头文件
#ifndef __MYMYSQL_H__
#define __MYMYSQL_H__
#include <WinSock2.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
#define SZCHARSIZE 100
typedef struct _tagMysqlInfo
{
char host[SZCHARSIZE]; //主机
char user[SZCHARSIZE]; //用户名
char passwd[SZCHARSIZE]; //密码
char db[SZCHARSIZE]; //数据库
UINT port; //端口号
char unix_socket[SZCHARSIZE]; //如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。
DWORD client_flag; // client_flag的值通常为0
}MYSQLINFO,*PMYSQLINFO;
class CMyMysql
{
public:
CMyMysql(void);
BOOL connect(const MYSQLINFO); //连接成功返回true 失败返回false
BOOL query(const char*); //查询mysql语句
my_ulonglong GetresultLine(); //获取查询到的行数
MYSQL* GetMysqlPtr(); //获取mysql指针
MYSQL_RES* GetMysqlresPtr(); //获取mysqlres指针
~CMyMysql(void);
private:
MYSQL* m_mYsqlPtr; //mysql 指针
MYSQL_RES* m_mYsqlres; //mysql 结果集指针
};
#endif //__MYMYSQL_H__
cpp文件
#include "MyMysql.h" CMyMysql::CMyMysql(void)
:m_mYsqlPtr(NULL)
{
m_mYsqlPtr = mysql_init(NULL);
} CMyMysql::~CMyMysql(void)
{
if (m_mYsqlPtr)
mysql_close(m_mYsqlPtr);
if (m_mYsqlres)
mysql_free_result(m_mYsqlres);
}
BOOL CMyMysql::connect(const MYSQLINFO mysqlInfo)
{
if(!mysql_real_connect(m_mYsqlPtr,mysqlInfo.host,mysqlInfo.user,mysqlInfo.passwd,mysqlInfo.db,mysqlInfo.port,mysqlInfo.unix_socket,mysqlInfo.client_flag))
return FALSE;
else
return TRUE;
}
BOOL CMyMysql::query(const char* szSql)
{
if(!strlen(szSql))return FALSE;
if(mysql_query(m_mYsqlPtr,szSql))
return FALSE;
else
return TRUE;
}
my_ulonglong CMyMysql::GetresultLine()
{
m_mYsqlres = mysql_store_result(m_mYsqlPtr);
if(!m_mYsqlres)return NULL;
return mysql_num_rows(m_mYsqlres);
}
MYSQL* CMyMysql::GetMysqlPtr()
{
return m_mYsqlPtr;
}
MYSQL_RES* CMyMysql::GetMysqlresPtr()
{
return m_mYsqlres;
}
简单的调用例子用的MFC
void CMysqlDemoDlg::OnBnClickedButton1()
{
CMyMysql * mYSQL = new CMyMysql();
MYSQLINFO mysqlInfo;
ZeroMemory(&mysqlInfo,sizeof(MYSQLINFO));
CopyMemory(mysqlInfo.host,"localhost",_tcslen("localhost"));
CopyMemory(mysqlInfo.user,"root",_tcslen("root"));
CopyMemory(mysqlInfo.passwd,"",_tcslen(""));
mysqlInfo.port =;
if (!mYSQL->connect(mysqlInfo))
{
AfxMessageBox("连接数据库失败!\r\n");
delete mYSQL;
return ;
}
if (mysql_set_character_set(mYSQL->GetMysqlPtr(),"gbk"))
{
AfxMessageBox("设置默认字符失败!\r\n");
delete mYSQL; }
if (mysql_select_db(mYSQL->GetMysqlPtr(),"ecshop"))
{
AfxMessageBox("选择数据库失败!\r\n");
delete mYSQL;
}
if(!mYSQL->query("select * from ecs_admin_user;"))
{
AfxMessageBox("查询失败!\r\n");
delete mYSQL;
}
my_ulonglong Line = mYSQL->GetresultLine();
MYSQL_FIELD* fd = NULL;
CString str;
while (fd = mysql_fetch_field(mYSQL->GetMysqlresPtr()))
{
str+= fd->name;
str+="\r\n";
}
SetDlgItemText(IDC_EDIT1,str);
MYSQL_ROW rows;
str = "";
UINT listSize = mysql_num_fields(mYSQL->GetMysqlresPtr());
while(rows = mysql_fetch_row(mYSQL->GetMysqlresPtr()))
{
for (UINT i = ;i<listSize;i++)
{
str+= rows[i];
}
str+="\r\n";
}
SetDlgItemText(IDC_EDIT2,str);
delete mYSQL;
}
vc调用mysql数据库操作例子的更多相关文章
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
- VC与ADO数据库操作
VC与ADO数据库操作 学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了.重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的! 一.A ...
- Python/MySQL(四、MySQL数据库操作)
Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...
- 新手学python(2):C语言调用完成数据库操作
继续介绍本人的python学习过程.本节介绍如何利用python调用c代码.内容还是基于音乐信息提取的过程,架构如图一.Python调用c实现的功能是利用python访问c语言完成mysql数据库操作 ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- Python进行MySQL数据库操作
最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...
- 使用C语言调用mysql数据库编程实战以及技巧
今天编写使用C语言调用mysql数据库编程实战以及技巧.为其它IT同行作为參考,当然有错误能够留言,共同学习. 一.mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_re ...
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
随机推荐
- Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
前言 容器技术的发展让软件交付和运维变得更加标准化.轻量化.自动化.这使得动态调整负载的容量变成一件非常简单的事情.在kubernetes中,通常只需要修改对应的replicas数目即可完成.当负载的 ...
- Vue电商后台管理系统项目第2天-首页添加表格动态渲染数据&分页
0x01.使用Github学习的姿势 基于昨天的内容,今天的内容需要添加几个单文件组件,路由文件也需要做相应的增加,今天重点记录使用Element-UI中的表格组件实现数据动态渲染的实现流程和分页功能 ...
- 下载mysql document
wget -b -r -np -L -p https://dev.mysql.com/doc/refman/5.6/en/ 在下载时.有用到外部域名的图片或连接.如果需要同时下载就要用-H参数. wg ...
- 22-2 模板语言的进阶和fontawesome字体的使用
一 fontfawesome字体的使用 http://fontawesome.dashgame.com/ 官网 1 下载 2 放到你的项目下面 3 html导入这个目录 实例: class最前面的f ...
- Core Data 数据出现Fault
I am mapping Json Data from Server using Restkit and I am Displaying those data by fetching from db. ...
- 2018-9-1-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199
title author date CreateTime categories win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 lindexi 2018-09-01 16:24: ...
- laravel validate 设置为中文(验证提示为中文)
把 resources\lang 下en 的文件夹 复制在同一目录并改名为 zn 把zn 中的 validation.php文件修改为 https://laravel-china.org/articl ...
- ABSD 基于架构的软件设计方法方法简介(摘抄)
ABSD(Architecture-Based Software Design)基于架构的软件设计方法 有三个基础: 第一个基础是功能分解.在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术 ...
- const(每个对象中的常量), static const(类的编译时常量)
1 每个对象中的常量 --- const数据成员 const限定,意味着“在该对象生命周期内,它是一个常量”. 关键字const 使被限定的量为常量 在该类的每个对象中,编译器都为其const数据成员 ...
- H3C FTP双TCP连接方式