crossplatform.ru

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


  Ответ в QODBC и "MS Access" (*.mdb)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
DmP Дата 24.5.2009, 16:52
 
Цитата(Litkevich Yuriy @ 24.5.2009, 16:49) *
вообще путь с пробелами это от лукавого, это даже мелкосовтовцы поняли, в Висте этот каталог только ради совместимости существует.
Попробуй его в кавычки взять, а лучше вообще в Program files ничего не клади.

Ни каких кавычек не надо, следующий фрагмент прекрасно работает:
    QString dbName = "C:\\Program Files\\Xxx Xxx\\xxx.mdb";
    QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QODBC"));
    QString conn = QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1;").arg(dbName);
    db.setDatabaseName(conn);
    if (!db.open())
    {
        qDebug() << db.lastError().text();
    }
Litkevich Yuriy Дата 24.5.2009, 15:49
 
Цитата(DmP @ 24.5.2009, 18:35) *
C:\Program files\My Program\1.mdb
вообще путь с пробелами это от лукавого, это даже мелкосовтовцы поняли, в Висте этот каталог только ради совместимости существует.
Попробуй его в кавычки взять, а лучше вообще в Program files ничего не клади.
DmP Дата 24.5.2009, 14:35
 
Цитата(Litkevich Yuriy @ 24.5.2009, 6:58) *
Цитата(DmP @ 24.5.2009, 4:52) *
DBQ=1.mdb
вот здесь, например, нет пути к файлу, как ODBC должен догадаться о его место положении?

Под виндой:
DBQ=C:\Program files\My Program\1.mdb;
Litkevich Yuriy Дата 24.5.2009, 5:58
  я с ODBC практически не знаком, т.е. до Qt с ним не работал. И правила записи имени источника данных через программу не знаю.
Также не знаю насколько полно Qt поддерживает ODBC, например, при работе с FireBird'ом не всё ровно.
Когда используется способ какой описал я, то всегда работает надёжно.
Цитата(DmP @ 24.5.2009, 4:52) *
этого вполне достаточно,
возможно
Цитата(DmP @ 24.5.2009, 4:52) *
DBQ=1.mdb
вот здесь, например, нет пути к файлу, как ODBC должен догадаться о его место положении?
И будет ли такая запись работать на *nix-системах? И не понятно насколько полно поддерживает unixODBC мелкосовтовский стандарт?
DmP Дата 24.5.2009, 0:52
 
Цитата(vanvo @ 23.5.2009, 23:17) *
Вопрос в тему возник: если при использовании ODBC надо так работу с БД настраивать, то как распространять программу на другие компьютеры?

db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=1.mdb");
этого вполне достаточно, возможно причина ошибки у ieroglif в другом.
vanvo Дата 23.5.2009, 22:17
 
Цитата(Litkevich Yuriy @ 23.5.2009, 15:59) *
"Пуск" -> "Настройка" -> "Панель управления" -> "Администрирование" -> "Источники данных ODBC"

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

Вопрос в тему возник: если при использовании ODBC надо так работу с БД настраивать, то как распространять программу на другие компьютеры? Везде придется делать "Пуск" -> "Настройка" -> "Панель управления" -> "Администрирование" -> "Источники данных ODBC"...?
Litkevich Yuriy Дата 23.5.2009, 20:20
 
Цитата(ieroglif @ 24.5.2009, 0:17) *
хм... а какую базу можешь посоветовать файловую что бы было кроссплатформенно и легко работало с кт?
SQLite, входит в состав Qt. А после компиляции твоего приложения, оказывается в строенной в него.
ieroglif Дата 23.5.2009, 20:17
  хм... а какую базу можешь посоветовать файловую что бы было кроссплатформенно и легко работало с кт?
Litkevich Yuriy Дата 23.5.2009, 19:50
 
Цитата(ieroglif @ 23.5.2009, 23:42) *
что бы вообще настраивать ничего не надо было, а всё было в коде?
так не получится.
Разве что, если есть такая воозможность вообще, воспользоватся какой-нибудь утилитой командной строки, чтобы передать ей параметры настройки, тогда можно это сделать с помощью QProcess.

Цитата(ieroglif @ 23.5.2009, 23:42) *
хм... а в линуксе? =)
и кроссплатформенно?
скачай тут документацию там есть пример настройки ODBC под Линухом
ieroglif Дата 23.5.2009, 19:42
  хм... а в линуксе? =)
и кроссплатформенно?
что бы вообще настраивать ничего не надо было, а всё было в коде?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:40