欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 02:44:09 责任编辑: Author_N1

 

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了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:44:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13739/
本文WWW.DOC100.NET DOC100.NET版权所有。