Sqlite3网络奇怪

时间:2011-07-05 07:31:10

标签: qt windows-7 sqlite

我有一个简单的QT程序来读取sqlite3数据库。令人讨厌的是,当实际数据库作为映射驱动器(Windows 7)在网络上时,我的程序失败,但当数据库在本地驱动器上时,我的程序会运行。我正在使用的代码低于实验目的。

    QFileInfo fileInfo(m_lastDatabaseFile);
    QString host = fileInfo.canonicalPath();
    QString filename = fileInfo.fileName();
    m_dataBase = QSqlDatabase::addDatabase("QSQLITE");
    m_dataBase.setHostName(host);
    m_dataBase.setDatabaseName(filename);
    qDebug() << " valid: " << m_dataBase.isValid(); 
    if (m_dataBase.open() )
    {
        QStringList tableList = m_dataBase.tables(QSql::Tables);
        qDebug() << "Database open.";
        QSqlQuery query = m_dataBase.exec("SELECT * FROM PallolBoards");

        qDebug() << "Found: " << query.size();
        if (query.size() <= 0)
        {

            QSqlError err = query.lastError();
            qDebug() << "Last error: " << err.text();

        }
        while (query.next() )
        {
            QString title = query.value(0).toString();
            qDebug() << "Query: " << title;
        }
    }
    else
    {
        QMessageBox::critical(this,"Invalid database",m_dataBase.lastError().text());
    }

有人提出任何线索吗?所以H:会失败,但D:会成功。

1 个答案:

答案 0 :(得分:1)

至少在Windows Vista中,有一个安全设置控制是否允许应用程序访问网络共享。

互联网安全设置(可通过Internet Explorer访问)和访问网络共享之间也存在依赖关系。