使用 QT5 连接到 ACCDB
Connecting to ACCDB using QT5
我想做的是从目录中找到所有.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** 中有点痛苦。希望这有助于其他人的斗争。
里卡多
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- 提升 ASIO - io_service 不要等待连接到线程
- WinSock2:connect() 提供"连接被拒绝"
- 升压信号2将插槽传递到成员功能以断开连接