读书人

C++连接MySQL用ADO组建有关问题求

发布时间: 2012-08-07 14:54:49 作者: rapoo

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');


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.csdn.net/u/20120415/15/6265cf8e-4541-4460-89f1-da64d096d06c.html
也不错

读书人网 >C++

热点推荐