使用 QT5 连接到 ACCDB

Connecting to ACCDB using QT5

本文关键字:ACCDB 连接 QT5 使用      更新时间:2023-10-16

我想做的是从目录中找到所有.db(悖论)文件并将它们保存到.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();
    }
}

有什么想法吗??谢谢!

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

-悖论数据库引擎(确保您下载的版本与您的.db文件匹配)

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

-access 2007 (以下版本删除了悖论数据库连接)

- 访问数据库引擎文件夹的管理员权限(喷气式和悖论)

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

database.open(path,*不要记得这里进了什么,*这里是读/写许可,"Paradox 5.x")

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

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

抱歉,这不是一个 c++ 答案,但据我所知,使用悖论数据库在 a** 中有点痛苦。希望这有助于其他人的斗争。

里卡多