首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

linux qt QODBC连接sql server 驱动 有关问题 ,实在是没辙了

2013-11-12 
linux qt QODBC连接sql server 驱动 问题 ,实在是没辙了程序在linux下,现在需要连接windows的sqlserver .d

linux qt QODBC连接sql server 驱动 问题 ,实在是没辙了
程序在linux下,现在需要连接windows的sqlserver .

   db = QSqlDatabase::database(SqlExpressway);
        if ( db.isValid() == false )
        {
            db = QSqlDatabase::addDatabase("QODBC", SqlExpressway);

            QString dsn = QString("DRIVER={SQL SERVER};SERVER=%1;port=%2;DATABASE=%3;uid=%4;pwd=%5;")
                    .arg("192.168.1.214")
                    .arg(1344)
                    .arg("expressway")
                    .arg("sa")
                    .arg("");

            db.setDatabaseName(dsn);
            db.setHostName("192.168.1.214");
            db.setPort(1344);
            db.setUserName("sa");
            db.setPassword("");
            if ( db.open() == false )
            {
                db.removeDatabase(SqlExpressway);
                qDebug()<<"error:"<<db.lastError().text();
            }
        }


报Drive Not Loaded 错误。
于是,我就下载了unixODBC-2.3.1.tar.gz  
./configure make  make install 
接着装了 apt-get install libqt4-sql-odbc

将libqsqlodbc.so 拷贝到qt用的sqldrivers 里。

    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << "\t" << driver;
    



Available drivers: 
 "QMYSQL3" 
 "QMYSQL" 
 "QSQLITE" 
 "QODBC3" 
 "QODBC" 
程序显示,QODBC 已经可以使用了。但是 db.open() 时,却失败了。
报错信息
error:"Driver not loaded Driver not loaded"



[解决办法]
版主,最后解决了么?能否把你的连接记录一份 或发表一个博客
[解决办法]
连接问题我解决了 现在 头疼 中文乱码问题 版主可以加qq 一起讨论吗?
[解决办法]
中文乱码的关键是你怎么使用编码。
1、一般来说源码中能不用汉字字符串常量就不用。
2、源码本身的编码规则影响到汉字常量字符串的编码。
3、当你无法确定当前的汉字编码是什么时,用QByteArray::toHex来看看实际编码是什么。
4、Qt5及以上版本没有QTextCodec了。

热点排行