Mysql: 基于MySQL API 接口,Viual Studio,访问 Mysql数据库

用VS 访问Mysql数据库,基于MySQL API 接口(C语言)

开发环境:

- OS: Windows 7, 64位

- VS2008

- Mysql 5.7

Mysql 5.7 的参考手册:

http://downloads.mysql.com/docs/refman-5.7-en.a4.pdf

或者百度网盘:http://pan.baidu.com/s/1slxhhxj

> 准备Mysql

<span style="font-size:14px;">CREATE DATABASE mydb;
SHOW DATABASES;
USE mydb;</span>

<span style="font-size:14px;"></span><pre name="code" class="sql">CREATE TABLE test_tbl
(id serial,
name VARCHAR(20) NOT NULL);
SHOW TABLES;
DESC test_tbl;
insert into test_tbl( name) values ( 'Ray');
select * from test_tbl;
 

执行后如下:

mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

mysql> USE mydb;
Database changed
mysql> CREATE TABLE test_tbl
    -> (id serial,
    -> name VARCHAR(20) NOT NULL);
Query OK, 0 rows affected (0.07 sec)

mysql> SHOW TABLES;
+----------------+
| Tables_in_mydb |
+----------------+
| test_tbl       |
+----------------+
1 row in set (0.00 sec)

mysql> DESC test_tbl;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)         | NO   |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> insert into mydb.test_tbl( name) values ( 'Ray');
Query OK, 1 row affected (0.02 sec)

mysql> select * from test_tbl;
+----+------+
| id | name |
+----+------+
|  1 | Ray  |
+----+------+
1 row in set (0.00 sec)

mysql>



1.1 采用Mysql API接口:C语言

新建空白项目,设置项目如下:

项目->属性-> C/C++ ->常规 -> 附加包含目录,添加: C:\Program Files\MySQL\MySQL Server 5.7\include

(与mysql安装目录一致)

项目->属性-> 链接器 ->常规 -> 附加库目录,添加: C:\Program Files\MySQL\MySQL Server 5.7\lib (与mysql的安装目录一致)

项目->属性-> 链接器 ->输入 -> 附加依赖项,添加:libmysql.lib

将文件libmysql.dll(位于C:\Program Files\MySQL\MySQL Server 5.7\lib)复制到system32目录下。

如果你和我一样,电脑和mysql都是安装的64位,请设置:

项目->属性->配置管理器-> 平台 -> 新建 : 选择X64,设置debug为release,不然链接时,会出现错误。

如果找不到X64,需要为VS2008安装64位编译器。找到VS2008安装包,打开安装程序,操作:更改或移除Visual Studio 2008 -> 下一步 ->  添加或者删除功能 , 为Visual C++ 安装 X64编译器和工具,请自行完成。



新建源文件,程序如下:

<span style="font-size:14px;">#include <stdio.h>
#include "mysql.h"
#include <windows.h>

const int TIME = 2000;
const char* headline = "------------------------";


int main(int argc, char *argv[])
{
	MYSQL mysql_con;
	MYSQL_RES * sql_select;

	int ack;
	char * host = "localhost";
	char * user = "andrew";
	char * pwd = "andrew123";
	char * db_name = "mydb";
	int port = 3306;


	// initialize mysql server
	mysql_init(&mysql_con);

	if ( mysql_real_connect(&mysql_con, host, user, pwd, db_name, port, 0, 0)){
		//print connect successful
		printf("mysql connect successful\n"); 

		// insert a new row to mydb.test.tbl
		char *str = "insert into mydb.test_tbl( name) values ( 'Andrew')";
		ack = mysql_query(&mysql_con, str);
			if (!ack){
				printf("insert successful!");
			}
			else{
				printf("insert error");
			}

		str = "select * from test_tbl";
		ack = mysql_query( &mysql_con, str);
		
		if (!ack){
			sql_select = mysql_store_result(&mysql_con);
			if(sql_select){
				int rowcount =  mysql_num_rows(sql_select);
				printf("result rows: %d\n", rowcount);
				int fieldcount = mysql_num_fields(sql_select);

				int j;
				//print field of table
				MYSQL_FIELD *field;
				MYSQL_ROW row;
				printf("%s\n", headline);
				for (j = 0; j< fieldcount; j++){
						field = mysql_fetch_field_direct(sql_select, j);
						printf("%s\t\t", field->name);
				}
				printf("\n");

				// print rows of table
				while( row = mysql_fetch_row(sql_select)){					
					for (j = 0; j< fieldcount; j++){
						printf("%s\t\t", row[j]);
					}
					printf("\n");
				}
				printf("\n%s\n", headline);
			}
		}

		mysql_close(&mysql_con);
		printf("Mysql colse");
	}
	else{
		// fail to connect
		printf("fail to connect Mysql");
		
	}

	// pritn: program stop
	Sleep(TIME*2);
	printf("the program stop\n");
	return 0;


}</span>


运行结果的部分截图如下:










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Factorytalk view 简明培训 ------深圳库马克 杨小贤 ME 工程设计简记: 1、 新建工程 "文件"菜单中选择"新建应用程序" ,弹出如下对话框: 输入应用程序名称,语言选择英语(en-US) ,然后单击创建完成新建程序,如果想要导入 其他的工程,可以单击"导入"按钮,选择需要导入的程序,按"完成"导入已有工程。 (注 意:新建的工程与导入的工程语言要一直,否则出现乱码) 。 2、 工程设置与起动运行设置 在工程浏览器窗口中的工程目录下的系统目录中, 可以对工程运行、 启动、 安全等进行设置。 在工程窗口大小中根据触摸屏型号即尺寸分辨率等选择适当的大小。在"运行时"设置页面 里设置工程运行时是否有标题栏、边框以及工程窗口位置。 在"启动"设置中,可以设置在工程运行时是否启动"报警" 、 "参考信息"等,在初始画面 中可以设置工程启动运行时的初始画面。 3、 创建通讯 在工程浏览器窗口中,点击进入 RSLinx Enterprise(此项为可选安装选项,在安装软件时必 须安装 RSLinx Enterprise 才能显示此选项) , 双击 Communication Setup 进入通讯设置, 如下 图所示: 点击添加,并输入通讯快捷方式名称(自定) ,在"设计"(本地)和"运行时"(目标)选项 卡中分别设置本地通讯和运行时通讯模式。 本地工作站上的设置, 用于构建及测试应用程序 ("通信设置"编辑器, "设计"(本地) 选项卡。 ) 部署到实际目标设备 (例如 PanelView Plus) 的设置("通信设置"编辑器"运行时"(目标)选项卡。 ) 根据联网设备的型号,通讯模式等在"设计"和"本地"选项卡中添加相应的设备驱动和设 备。 4、 创建 HMI 标签 在工程浏览器中,进入 HMI 标签,双击标签进入如下图所示界面: 新建标签, 输入标签名称, 类型, 描述等, 在数据源中选择设备类型为 "设备" 还是 "内存" , 如果设备类型为设备,则需要输入地址,地址格式为设备名称加实际设备内存地址。也可以 通过数据库浏览器直接导入 PLC 变量。 5、 创建画面显示 在"文件"菜单中,选择"新建">"显示"。或在浏览器的"图形"文件中,右键单击显示图标, 选择"新建"。创建新的画面显示。在"编辑"菜单中,选择显示设置 ,如下图所示: 可以设置画面的显示类型、安全码、背景色和最大标签更新速率(画面数据刷新时间,默认 1 秒) 。 详细画面过程见帮助文件 6、 创建报警 在"报警设置"编辑器中指定要监视的标签或表达式, 触发报警、 报警设置和弹出报警显示 (如 果存在)的条件以及当报警发生时要执行的操作。 注意:要在运行时监视报警,必须在"启动"编辑器中选中"报警"复选框。 在"浏览器"窗口,打开 Alarms 文件夹。 双击"报警设置"图标打开编辑器。 在"触发器"、"信息"和"高级"选项卡中设置报警。 单击"确定"保存变更,关闭编辑器。 向选择触发器列表框里添加触发报警的变量,选择触发器类型和触发器标记。 在信息对话框中添加触发器以及报警信息,设置好触发器值,创建报警成功。 7、 设置运行时安全 在工程浏览器窗口,双击运行时安全,添加帐户,设置权限以及安全码。 8、 测试运行 工程编辑完成后,可通过"应用程序"---》 "测试应用程序"命令来模拟测试显示及功能等。 9、 生成运行时文件 确定工程编辑无误后,通过"应用程序"-----》 "创建运行时应用程序" ,生成触摸屏上能运 行的工程文件。 10、 将运行文件下载到触摸屏 从开发系统的"开始"菜单中,依次选择"Rockwell Software > FactoryTalk View > 工 具 > ME 传输工具"。 或 从 FactoryTalk View Studio 中,从"工具"菜单选择"传输工具", 或 从 FactoryTalk View Studio 中,在工具栏上单击"传输工具"图标。 "传输工具"对话框打开。如下图所示: 在源程序中选择要下载的到触摸屏的程序, 选择程序存储位置, 点选 "启动时运行应用程序" , 点选"替换通信"以替换当前通信模式。在目标终端列表框中选择要下载程序的目标设备, 点击下载,下载完成后,触摸屏自动重启并进入运行画面。 对于首次使用的触摸屏, 一定要向触摸屏下载中文字体, 否则中文有可能不显示或者显示乱 码。 SE 工程设计简记: 1、 创建新项目 启动 FactoryTalk View Studio。 选择 site Edition(本地)————》继续 选择新建,输入应用程序名称,语言选择英语,单击创建,新建一个新项目。 2、 按下图所示添加 RSLinx Enterprise 服务器,连接 PLC。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值