簡體   English   中英

使用QT5連接到ACCDB

[英]Connecting to ACCDB using QT5

我想做的是從目錄中找到所有.db(Paradox)文件,並將它們保存到.mdb。 問題是,要想嘗試一下是否正常,我首先嘗試打開一個ACCDB(我將使用的.db和.mdb是僅在學校內部網絡中可用的資源)。

我已經檢查過,並且在Qt目錄中找到了sql驅動程序,還在我的pro文件中添加了QT + = sql,已經安裝了訪問數據庫引擎,還安裝了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();
    }

}

有什么想法嗎? 謝謝!

我最終解決了這種繞過訪問的問題。 如果其他人為此苦苦掙扎,則需要:

-Paradox DB引擎(確保下載的版本與.db文件匹配)

-Jet引擎4.0或更高版本

-access 2007(以下版本已刪除Paradox DB連接)

-管理員權限以訪問數據庫引擎文件夾(jet和悖論)

只需通過連接或數據庫對象打開數據庫。 Sintax應該是這樣的(通過訪問中的VBA模塊):

database.open(路徑,*不要補救這里的內容,*這里允許讀/寫許可,“ Paradox 5.x”)

路徑應指向包含一個或多個.db文件的文件夾,該文件將作為一個數據庫打開,文件為表。 它實際上會生成一個新數據庫(.accdb或.mdb,具體取決於您如何保存它)

並非完全像這樣,但是我在筆記本電腦上。 一旦掌握代碼,我將編輯答案

抱歉,這不是c ++的答案,但是根據我的發現,使用a **來處理悖論數據庫有點麻煩。 希望這有助於其他人的奮斗。

里卡多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM