crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QODBC и "MS Access" (*.mdb), куда положить этот файл бд?
ieroglif
  опции профиля:
сообщение 23.5.2009, 13:22
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 19.1.2009
Из: планета Земля
Пользователь №: 496

Спасибо сказали: 0 раз(а)




Репутация:   0  


что-то бред какой-то..
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=1.mdb");
    if (db.open()) {
        emit OpenOk();
    } else {
        emit OpenNo(db.lastError().text());
    }


выдаёт еррор Open No!Error: [iODBC][Driver Manager]{Microsoft Access Driver (*.mdb)}: cannot open shared object file: No such file or directory [iODBC][Driver Manager]Specified driver could not be loaded QODBC3: Unable to connect

при этом
qDebug() << QSqlDatabase::drivers();
выдаёт
("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")

файл 1.mdb положил уже и в основную папку проекта, и в папки дебага и релиза...
как открыть эту базу?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.5.2009, 13:29
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Настрой источник данных ODBC без вот таких штук:
Цитата
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=1.mdb");

и всё будет работать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ieroglif
  опции профиля:
сообщение 23.5.2009, 14:02
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 19.1.2009
Из: планета Земля
Пользователь №: 496

Спасибо сказали: 0 раз(а)




Репутация:   0  


а, извиняюсь, это как?
можно пример? что-то найти не получается =(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.5.2009, 14:59
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


"Пуск" -> "Настройка" -> "Панель управления" -> "Администрирование" -> "Источники данных ODBC"

На вкладке "Пользовательский DSN" добавь источник данных (в качестве драйвера выбери "Microsoft Access Driver") дальше я думаю по подписям на кнопках догадаешся.
Задай имя источнику данных и затем помести это имя в функцию db.setDatabaseName()
Чтобы не парится с кодировками в имени источника данных, лучше задать ему имя латиницей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ieroglif
  опции профиля:
сообщение 23.5.2009, 19:42
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 19.1.2009
Из: планета Земля
Пользователь №: 496

Спасибо сказали: 0 раз(а)




Репутация:   0  


хм... а в линуксе? =)
и кроссплатформенно?
что бы вообще настраивать ничего не надо было, а всё было в коде?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.5.2009, 19:50
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(ieroglif @ 23.5.2009, 23:42) *
что бы вообще настраивать ничего не надо было, а всё было в коде?
так не получится.
Разве что, если есть такая воозможность вообще, воспользоватся какой-нибудь утилитой командной строки, чтобы передать ей параметры настройки, тогда можно это сделать с помощью QProcess.

Цитата(ieroglif @ 23.5.2009, 23:42) *
хм... а в линуксе? =)
и кроссплатформенно?
скачай тут документацию там есть пример настройки ODBC под Линухом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ieroglif
  опции профиля:
сообщение 23.5.2009, 20:17
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 19.1.2009
Из: планета Земля
Пользователь №: 496

Спасибо сказали: 0 раз(а)




Репутация:   0  


хм... а какую базу можешь посоветовать файловую что бы было кроссплатформенно и легко работало с кт?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.5.2009, 20:20
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(ieroglif @ 24.5.2009, 0:17) *
хм... а какую базу можешь посоветовать файловую что бы было кроссплатформенно и легко работало с кт?
SQLite, входит в состав Qt. А после компиляции твоего приложения, оказывается в строенной в него.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vanvo
  опции профиля:
сообщение 23.5.2009, 22:17
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 18.8.2008
Пользователь №: 267

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 23.5.2009, 15:59) *
"Пуск" -> "Настройка" -> "Панель управления" -> "Администрирование" -> "Источники данных ODBC"

На вкладке "Пользовательский DSN" добавь источник данных (в качестве драйвера выбери "Microsoft Access Driver") дальше я думаю по подписям на кнопках догадаешся.
Задай имя источнику данных и затем помести это имя в функцию db.setDatabaseName()

Вопрос в тему возник: если при использовании ODBC надо так работу с БД настраивать, то как распространять программу на другие компьютеры? Везде придется делать "Пуск" -> "Настройка" -> "Панель управления" -> "Администрирование" -> "Источники данных ODBC"...?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DmP
  опции профиля:
сообщение 24.5.2009, 0:52
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 61
Регистрация: 11.3.2008
Пользователь №: 116

Спасибо сказали: 15 раз(а)




Репутация:   2  


Цитата(vanvo @ 23.5.2009, 23:17) *
Вопрос в тему возник: если при использовании ODBC надо так работу с БД настраивать, то как распространять программу на другие компьютеры?

db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=1.mdb");
этого вполне достаточно, возможно причина ошибки у ieroglif в другом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 17:11