Я пытаюсь найти все файлы .db (Paradox) из каталога и сохранить их в .mdb. Дело в том, чтобы попробовать, если это работает правильно, я сначала попытался открыть ACCDB (.db и .mdb, которые я буду использовать, — это ресурсы, доступные только во внутренней сети моей школы).
Я уже проверил, и я нашел драйверы sql в каталоге Qt, я также добавил QT + = sql в свой pro-файл, я установил механизм доступа к базе данных, 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)
-Реактивный двигатель 4.0 или позже
-доступ 2007 (в следующей версии удалено соединение с Paradox DB)
-Права администратора для доступа к папкам ядра базы данных (как Jet, так и парадокс)
Просто откройте базу данных через соединение или объект базы данных. Синтаксис должен быть примерно таким (через модуль VBA в доступе):
database.open (путь, * Не помню, что здесь происходит, * здесь идет разрешение на чтение / запись, «Paradox 5.x»)
Путь должен указывать на папку, содержащую один или несколько файлов .db, которая будет открыта как единая база данных с файлами, являющимися таблицами. Фактически он генерирует новую базу данных (либо .accdb, либо .mdb, в зависимости от того, как вы ее сохранили).
Это не совсем так, но я на своем ноутбуке. Я отредактирую ответ, как только я нахожусь перед моим кодом
Извините, это не ответ C ++, но из того, что я обнаружил, довольно сложно работать с базой данных парадокса. Надеюсь, что это помогает другим в борьбе.
Рикардо