C++连接MySQL,用ADO组建,有关问题求解
C++连接MySQL,用ADO组建,问题求解!
配置vs2010的环境
1. 项目属性页->C/C++->常规->附加包含目录,添加两项路径,一项一行:
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include\cppconn
2. 项目属性页->链接器>常规->附加库目录,添加一个目录:
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt
3. 项目属性页->链接器>输入>附加依赖项。添加这两项
mysqlcppconn.lib;mysqlcppconn-static.lib(在C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt目录下的两个.lib文件)
4. 将C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt下的mysqlcppconn.dll文件复制到系统驱动盘.windows\system32目录下。
环境配置完毕。
(3)在mysql建一张表(事先安装好了mysql5)
在连接数据库之前,在>mysql先建立一张表。 (其实这些可以在代码中完成,我这样是为了让测试代码尽可能简练易查错)
打开控制台,输入mysql -u root -p,输入密码。
查看当前已有的数据库。(SQL语句末尾加上';'表示立即执行当前语句。)
mysql> show databases;
创建数据库
mysql> create database test;
使用数据库(这句不能加分号)
mysql> use test
查看已有的表
mysql> show tables;
创建表
mysql> create table test( id INT, name CHAR(20));
插入数据
mysql> insert into test(id, name) values(1001, 'google');
mysql> insert into test(id, name) values(1002, 'kingsoft');
mysql> insert into test(id, name) values(1003, 'firefox');
出现的问题是:
Error 2 error LNK1120: 1 unresolved externals
Error 1 error LNK2019: unresolved external symbol "__declspec(dllimport) class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" (__imp_?get_mysql_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ) referenced in function "void __cdecl RunConnectMySQL(void)" (?RunConnectMySQL@@YAXXZ)
怎么解决了,求解。。。。
------解决方案--------------------
这不是用ADO连接的,这是用mySQL提供的native包连接的。
对照
在VC2008中使用"MySQL Connector/C++ "连接MySQL数据库
看看遗漏了什么库
------解决方案--------------------
这个帖子
http://topic.****.net/u/20120415/15/6265cf8e-4541-4460-89f1-da64d096d06c.html
也不错
配置vs2010的环境
1. 项目属性页->C/C++->常规->附加包含目录,添加两项路径,一项一行:
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include\cppconn
2. 项目属性页->链接器>常规->附加库目录,添加一个目录:
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib
C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt
3. 项目属性页->链接器>输入>附加依赖项。添加这两项
mysqlcppconn.lib;mysqlcppconn-static.lib(在C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt目录下的两个.lib文件)
4. 将C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt下的mysqlcppconn.dll文件复制到系统驱动盘.windows\system32目录下。
环境配置完毕。
(3)在mysql建一张表(事先安装好了mysql5)
在连接数据库之前,在>mysql先建立一张表。 (其实这些可以在代码中完成,我这样是为了让测试代码尽可能简练易查错)
打开控制台,输入mysql -u root -p,输入密码。
查看当前已有的数据库。(SQL语句末尾加上';'表示立即执行当前语句。)
mysql> show databases;
创建数据库
mysql> create database test;
使用数据库(这句不能加分号)
mysql> use test
查看已有的表
mysql> show tables;
创建表
mysql> create table test( id INT, name CHAR(20));
插入数据
mysql> insert into test(id, name) values(1001, 'google');
mysql> insert into test(id, name) values(1002, 'kingsoft');
mysql> insert into test(id, name) values(1003, 'firefox');
- C/C++ code
// tst.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <mysql_connection.h> #include <mysql_driver.h> #include <statement.h> using namespace sql; using namespace std; void RunConnectMySQL() { mysql::MySQL_Driver *driver; Connection *con; Statement *state; ResultSet *result; // 初始化驱动 driver = sql::mysql::get_mysql_driver_instance(); // 建立链接 con = driver->connect("tcp://127.0.0.1:3306", "root", "admin"); state = con->createStatement(); state->execute("use test"); // 查询 result = state->executeQuery("select * from test"); // 输出查询 while(result->next()) { int id = result->getInt("id"); string name = result->getString("name"); cout << id << " : " << name << endl; } delete state; delete con; } int _tmain(int argc, _TCHAR* argv[]) { RunConnectMySQL(); getchar(); return 0; }
出现的问题是:
Error 2 error LNK1120: 1 unresolved externals
Error 1 error LNK2019: unresolved external symbol "__declspec(dllimport) class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" (__imp_?get_mysql_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ) referenced in function "void __cdecl RunConnectMySQL(void)" (?RunConnectMySQL@@YAXXZ)
怎么解决了,求解。。。。
------解决方案--------------------
这不是用ADO连接的,这是用mySQL提供的native包连接的。
对照
在VC2008中使用"MySQL Connector/C++ "连接MySQL数据库
看看遗漏了什么库
------解决方案--------------------
这个帖子
http://topic.****.net/u/20120415/15/6265cf8e-4541-4460-89f1-da64d096d06c.html
也不错