0

我编写了一个程序来访问 Microsoft sql 数据库。它在桌面上运行良好。但是当我在 android 设备上运行相同的程序时,我得到了错误:

04-09 06:17:41.784: W/Qt(1240): kernel\qsqlquery.cpp:368 (bool 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();
4

1 回答 1

0

没有 ODBC 驱动程序的 Android 版本。如果您检查QSqlDatabase::drivers(),您会看到 Qt 中的 android 仅支持 SQLite 驱动程序。

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

于 2014-04-09T10:31:58.400 回答