(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在打开时出错的主要内容,如果未能解决你的问题,请参考以下文章