(Necessitas)Microsoft sql db access在打开时出错

Posted

技术标签:

【中文标题】(Necessitas)Microsoft sql db access在打开时出错【英文标题】:(Necessitas)Microsoft sql db access gives error in opening 【发布时间】:2014-04-09 09:29:06 【问题描述】:

我写了一个程序来访问 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();

【问题讨论】:

如果您调用QSqlDatabase::drivers (),您需要的驱动程序可用吗? 【参考方案1】:

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

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

【讨论】:

是否可以在我的应用程序中包含 JDBC-ODBC 桥接器? 也许可以使用 JNI。 en.wikipedia.org/wiki/Java_Native_Interface 在安卓设备上可以用SQLite驱动连接微软数据库吗? 没有适用于 SQLite 数据库的 SQLite 驱动程序。 MS Access 和 MS SQL Server 需要 Android 不支持的 ODBC 驱动程序。如果我是你,我会使用 SQLite 数据库。 我正在开发一个辅助应用程序,其中主要应用程序用于桌面。它使用 Microsoft db

以上是关于(Necessitas)Microsoft sql db access在打开时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Necessitas Android 应用程序中删除所有默认权限?

如何使用 Necessitas(qt 端口)构建我的 HelloWorld Android 应用程序?

Necessitas SDK for android app with Qt

标题: Microsoft SQL Server Management Studio

Microsoft SQL Server Management Studio 已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)

odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 参数太少。预期 1.,SQLExecDirect 中的 SQL 状态 0700