0

我想做的是从一个目录中找到所有.db(Paradox)文件并将它们保存到.mdb。问题是,要尝试这是否正常工作,我首先尝试打开一个 ACCDB(我将使用的 .db 和 .mdb 是仅在我学校的内部网络中可用的资源)。

我已经查过了,在Qt目录下找到了sql驱动,我的pro文件里也加了QT +=sql,安装了access数据库引擎,也安装了VBA,但是可以无法打开连接。我还没有尝试连接到 SQLITE 数据库来尝试它是否有效,但我猜它会的。这是从按钮触发的代码:

db.addDatabase("QODBC");
explorador.setFileMode(QFileDialog::Directory);
ruta=explorador.getExistingDirectory(this,"Seleccionar directorio");
directorio.setPath(ruta);
subdir=directorio.entryList(QDir::AllDirs);
//La lista comienza en el 2º elemento
for(int i=2;i<subdir.size();i++)
{
    subruta=ruta+"/"+subdir.at(i);
    directorio.setPath(subruta);
    db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+subruta+"/Base de datos11.accdb");
    bool check=db.open();
    if(check)
        {
            dbg.setText("Prueba");
            dbg.show();
        }
    else
    {
        dbg.setText("Pruebaaa");
        dbg.show();
    }

}

有什么想法吗??谢谢!

4

1 回答 1

0

我最终通过访问解决了它。如果其他人正在为此苦苦挣扎,您需要:

-Paradox DB 引擎(确保您下载的版本与您的 .db 文件匹配)

-喷气发动机 4.0 或更高版本

-access 2007(以下版本已删除 Paradox DB 连接)

- 访问数据库引擎文件夹的管理员权限(jet 和 paradox)

只需通过连接或数据库对象打开数据库。Sintax 应该是这样的(通过访问中的 VBA 模块):

database.open(路径,*不要记住这里的内容,*这里有读/写许可,“Paradox 5.x”)

路径应指向包含一个或多个 .db 文件的文件夹,该文件夹将作为单个数据库打开,文件为表。它实际上会生成一个新数据库(.accdb 或 .mdb,取决于您如何保存它)

不完全是这样,但我在我的笔记本电脑上。一旦我在我的代码前面,我将编辑答案

抱歉,这不是 C++ 的答案,但从我的发现来看,使用 paradox 数据库对 a** 来说是一种痛苦。希望这有助于其他人的斗争。

里卡多

于 2015-02-24T16:37:37.047 回答