(Neessitas)Microsoft sql数据库访问在打开时出错

(Necessitas)Microsoft sql db access gives error in opening

本文关键字:出错 访问 数据库 Neessitas Microsoft sql      更新时间:2023-10-16

我编写了一个访问Microsoft sql数据库的程序。它在桌面上运行良好。但当我在安卓设备中运行相同的程序时,我会出现错误:

04-09 06:17:41.784:W/Qt(1240):内核\qsqlquery.cpp:368(布尔QSqlQuery::exec(const QString&):QSqlQuery::exec:数据库未打开

这是我的代码:

 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={SQL Server};Server=192.168.1.3;Database=sms_exp;");
db.setUserName("sa");
db.setPassword("xxxxxyy");
if(!db.open())
{
    qDebug ("Error");
}
else
{
    qDebug ("OK");
}
QSqlQuery query (db);
query.exec("SELECT item_code, item_des FROM prod_mast WHERE item_code = 0100000210");
while (query.next())
{
        QString name1 = query.value(0).toString();
        QString name2 = query.value(1).toString();
        qDebug (qPrintable(name1));
        qDebug (qPrintable(name2));
   }
db.close();

没有ODBC驱动程序的Android版本。如果你检查QSqlDatabase::drivers(),你会发现Qt中只有SQLite驱动程序支持android。

在android上建立ODBC连接的唯一方法是使用支持客户端和服务器之间网络连接的JDBC-ODBC桥。安卓系统上的JDBC到windows机器上的ODBC,然后到MS Access ODBC驱动程序。