crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 5:34