• 6799阅读
  • 4回复

用VS2008写MYSQL时出现的一些问题,请赐予答案啊...卡了很久了 [复制链接]

上一主题 下一主题
离线ws01000101
 

只看楼主 倒序阅读 楼主  发表于: 2010-08-14
#include <QtCore/QCoreApplication>
#include "QtSql/qsql.h"
#include "QtSql/QSqlDatabase"



bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setDatabaseName("testabc");
    db.setUserName("root");
    db.setPassword("sha0405gua1202");
    bool test;
    test=db.open();
    if (!test) {
//         QMessageBox::critical(0, QObject::tr("Database Error"),
//                               db.lastError().text());
        return false;
    }
    return true;
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    if (!createConnection())
        return 1;

    return a.exec();
}
这是Qt教程中的源码,我按照这个源码建立了一个新的工程,按照网上说的配置了Mysql和vs2008以及QT4.6了,我也设置了QTDIR的环境变量,原本提示说找不到mysql.h变量,后来我又在环境变量中加了MYSQLDIR D:\soft\mysql。然后在工程中设置了工程属性附加包含目录 $(MYSQLDIR)\include;这时候编译不提示找不到mysql.h了,结果提示
1>------ 已启动生成: 项目: testDatabase, 配置: Debug Win32 ------
1>正在链接...
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QSqlDatabase::open(void)" (__imp_?open@QSqlDatabase@@QAE_NXZ),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QSqlDatabase::setPassword(class QString const &)" (__imp_?setPassword@QSqlDatabase@@QAEXABVQString@@@Z),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QSqlDatabase::setUserName(class QString const &)" (__imp_?setUserName@QSqlDatabase@@QAEXABVQString@@@Z),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QSqlDatabase::setDatabaseName(class QString const &)" (__imp_?setDatabaseName@QSqlDatabase@@QAEXABVQString@@@Z),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QSqlDatabase::setHostName(class QString const &)" (__imp_?setHostName@QSqlDatabase@@QAEXABVQString@@@Z),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)" (__imp_?addDatabase@QSqlDatabase@@SA?AV1@ABVQString@@0@Z),该符号在函数 "bool __cdecl createConnection(void)" (?createConnection@@YA_NXZ) 中被引用
1>main.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static char * QSqlDatabase::defaultConnection" (__imp_?defaultConnection@QSqlDatabase@@2PADA)
1>d:\Projects\testDatabase\testDatabase\Debug\testDatabase.exe : fatal error LNK1120: 8 个无法解析的外部命令
1>生成日志保存在“file://d:\Projects\testDatabase\testDatabase\testDatabase\Debug\BuildLog.htm”
1>testDatabase - 9 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


请高手赐予答案啊...
离线tootzoe
只看该作者 1楼 发表于: 2010-08-14
QT += sql
离线ws01000101

只看该作者 2楼 发表于: 2010-08-14
用VS2008的时候在哪里添加呢?
离线ws01000101

只看该作者 3楼 发表于: 2010-08-15
今天又试了下,用qt自带的qmake工具可以实现exe的生成,也没有像用vs2008调试的时候发生链接错误,实现弄不懂到底是怎么回事。谁能告诉用vs2008编写数据库项目的时候,应该添加哪些lib,或者怎么配置工程?求解答....
Ps:用qmake是完成了与数据库的连接了。
离线ws01000101

只看该作者 4楼 发表于: 2010-08-15
恩,结贴了,我无意中发现了,现在可以用vs编写mysql数据库的工程了。
快速回复
限100 字节
 
上一个 下一个