【实践】

MySql和C部分实践

环境:

Vs2005+Xp+Sp3

MySql Server 5.0

库文件和头文件路径分别:

D:\Program Files\MySQL\MySQL Server 5.0\lib\debug

D:\Program Files\MySQL\MySQL Server 5.0\include

实践过程:

1、新建Windows32 Console程序

2、引用头文件#include <mysql>

编译,出现错误,找不到头文件~

在Xp环境变量中添加路径,再编译,仍然找不到~

看来只有在vs2005的环境配置中处理,实际操作:

工具->选项->项目和解决方案->VC++目录,这里有一个库文件路径和头文件路径,分别添加相应的路径

继续编译,错误,mysql_com.h中找不到my_socket类型~

具体指向这句话:int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
           unsigned int timeout);

网上查询需要#include <winsock.h>在#include <mysql.h>前面,ok,添加了,细细想下,应该还有问题:没有引用库文件

随后,在当前项目属性中,找到:配置属性->链接器->输入->附加依赖项

录入:D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib wsock32.lib

杯具,错误Lnk1104,找不到D:\program.obj~

其实最开始我直接拷贝的路径,串"D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib

这个的错误也是上面那个,后面改成无引号的,还是这个错~

linker高级命令中显示如下:你会发现路径错误(红色部分)

/OUT:"d:\My Documents\Visual Studio 2005\Projects\LibMath\Debug\TestMysql.exe" /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTFILE:"Debug\TestMysql.exe.intermediate.manifest" /DEBUG /PDB:"d:\My Documents\Visual Studio 2005\Projects\LibMath\debug\TestMysql.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT "D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib wsock32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

最后查询到,在引用库需要""来锁定完整路径的库,

最后在附加依赖项保存是这个串:"D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib" wsock32.lib

编译,出现错误lnk2005,lnk2019,这个错误是运行库问题,浏览下项目属性,发现当前运行库为MDd;那么我只能改成MTd

编译,成功了~

F5运行,cmd窗口出现“Error in connection:null”字符

ok,检查了,是帐号错误,本来是root,在这里用成sa了

修改成root,编译运行,出现字符"Query executed successfully"

到这里基本上算运行了一个正常的实践流程,至少在链接mySql server和简单查询上已经成功了~hoho

下面贴出h和cpp文件:

1 // stdafx.h : 标准系统包含文件的包含文件,
2  // 或是经常使用但不常更改的
3  // 特定于项目的包含文件
4  //
5  
6  #pragma once
7
8
9  #define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料
10 #include <stdio.h>
11 #include <tchar.h>
12
13 #include <winsock.h>//这个文件在mysql.h的前面哈
14
15  // TODO: 在此处引用程序需要的其他头文件
16  #include <mysql.h>
1 // TestMysql.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5
6
7
8 int _tmain(int argc, _TCHAR* argv[])
9 {
10 MYSQL mysql;
11 MYSQL_RES * result;
12
13 mysql_init(&mysql);
14
15 if (!(mysql_real_connect(&mysql ,"localhost" ,"root" ,"sa" ,"library" ,0 ,NULL ,0)))
16 {
17 fprintf(stderr, "Error in connection:%s\n");
18 return 0;
19 }
20
21 if (mysql_query(&mysql ,"Select * from tbmembers") != 0)
22 {
23 fprintf(stdout ,"Error in query\n");
24 }
25 else
26 {
27 fprintf(stdout ,"Query executed successfully\n");
28 }
29
30 mysql_close(&mysql);
31
32 return 0;
33 }

好,这个算结束了本次实践过程的记录

结论:

1、mysqlclient.lib运行库是MTd,多线程静态库;对应Release版本就是MT

2、mysql.h头文件还是依赖winsock.h,说明其开发的基础还是在sock,属于sock扩展应用

转载于:https://www.cnblogs.com/GoGoagg/archive/2011/03/14/1983836.html

mySql完全手册2011031401相关推荐

  1. Apache+php+tomcat+mysql整合手册

    Apache+Php+tomcat+mysql整合手册 Apache+Php+tomcat+mysql整合手册 一. 需要的安装包 httpd-2.0.52.tar.gz jakarta-tomcat ...

  2. mysql upgrade help_【MySQL学生手册】MySQL的升级

    我们知道,对于MySQL的新版本开发仍在继续,Oracle现在对MySQL发行版更新也很频繁.新版本中增加了许多新特性且修正了旧版本中发现的问题.然而,你不应该在未深入了解升级所涉及到的问题和困难程度 ...

  3. mysql 安装手册(转)

    mysql 安装手册  李群林 转载了 刘守尉(无效) 的博文  [查看原文][转载时间:2012-08-07 17:28] 1.下载MySQL的Linux安装文件 Linux下安装MySQL需要下面 ...

  4. mysql使用手册_mysql使用手册

    mysql使用手册 1.mysql登录 1.1 远程登陆mysql mysql -h ip -u root -p 密码 1.2 本地登陆mysql mysql -u root -p 密码 2.为数据库 ...

  5. MySQL 安装手册(5.7.20)

    MySQL 安装手册(5.7.20) 0. 安装摘要 清除 Linux 环境自身 MYSQL 或者 MariaDB 等: 下载 MYSQL RPM包: 安装.配置.启动: 修改 root 密码: 创建 ...

  6. mysql参考手册官方版(中文)

    mysql参考手册官方版(中文) http://www.linuxforum.net/books/mysqlmanual/manual_Privilege_system.html

  7. MySQL学习手册(第一部分)

    Mysql学习手册(第一部分) (一)Mysql查询语法和执行顺序 1.1 查询语法顺序 1.2 查询执行顺序 1.3 WHERE条件顺序 (二)Mysql架构介绍 2.1 逻辑架构 2.1.1 Co ...

  8. mysql r创建用户名_MySQL_mysql database manual(mysql数据库手册),2.1登入到mysql控制台[用户名为r - phpStudy...

    mysql database manual(mysql数据库手册) 2.1登入到mysql控制台[用户名为root,密码缺省为空] 切换到mysql的bin目录cd d:/wamp/mysql/bin ...

  9. 第二十三章 MySQL数据库 手册2 SQL语句

    第二十三章 MySQL数据库 手册2 SQL语句 实验二:用SQL语句,管理数据库 `危险命令,delete 后不加 where 条件代表删除所有数据 delete.` `更加危险的删除命令trunc ...

最新文章

  1. LaxTex-----参考文献中同名作者被默认缺省的问题
  2. 多伦多一人学计算机科学本科,加拿大多伦多大学计算机科学Essay要求
  3. http和HTTPS的区别及SSL介绍
  4. 主程序与子程序不在同一程序模块中_深度解析S7200系列PLC带参数子程序用法
  5. Python collections的使用
  6. autojs 如何获取控件的desc_owchart教程三:如何添加成交量?
  7. python下载论文_Python实现一个论文下载器的过程
  8. DeepMind作弊?被质疑干翻星际2顶尖高手全靠手速
  9. python修改文件后缀_Python批量修改文件后缀的方法
  10. 在华为三层交换机上如何实现不同vlan间的通信
  11. Ubuntu18.04 安装搭建 hadoop-3.3.0 集群
  12. directshow视频旋转90度
  13. 【从零开始学习YOLOv3】3. YOLOv3的数据加载机制和增强方法
  14. Android root环境下设置ro.debuggable = 1
  15. 7-11 哥德巴赫猜想
  16. linux运维是什么
  17. 小程序楼层索引,将汉字转换为拼音并以首字母排序
  18. 投影仪软件哪个好用?装上一起看TV,解锁追剧新体验
  19. 通灵学院|游戏设计研习6:制作谜题的原则★(1800字)
  20. 慕课软件质量保证与测试(第五章.课后作业)

热门文章

  1. 聚类之isodata算法
  2. 配置远程服务器jupyter
  3. android下音频采集功能,音频采集:Android基于AudioRecord的实现
  4. 提示找不到include/common.h 提示No package 'minigui' found
  5. 自定义控件的子控件支持设计模式
  6. linux使用freetds 连接连远程服务器sqlservser2012
  7. fileinput 的总结
  8. LeetCode - 413. Arithmetic Slices - 含中文题意解释 - O(n) - ( C++ ) - 解题报告
  9. 其实吧,微信就是已经用电脑上线,第二天消息还是从手机上重新接收
  10. GCC的内存边界对齐