Russian Qt Forum

Qt => Базы данных => Тема начата: Iluha_Sokolov от Январь 03, 2010, 19:59



Название: QODBC + Qt 4.5.1
Отправлено: Iluha_Sokolov от Январь 03, 2010, 19:59
Возможно этот вопрос и затрагивался в этом форуме- но я его не нашёл.
Мне нужно написать программу которая соединяется с бд Access, это драйвер QODBC -где его подключать (в самой Windows) и как работать с ним-хотя бы как в приложение вывести расскажите как.. (. Искал в интернете -в основе своей рассматривается SQL- но с серверами бд не работал и ни разу не проектировал подобное -первый раз как понимаете всегда трудно. Кто может помогите.


Название: Re: QODBC + Qt 4.5.1
Отправлено: Karl-Philipp от Январь 03, 2010, 20:34
Попробуй еще раз в поиск по форуму по ключевому слову ODBC. Там точно есть примеры. 
+ смотри общую информацию по драйверу ODBC (http://doc.trolltech.com/4.6/sql-driver.html#qodbc-for-open-database-connectivity-odbc)  и примеры из самой библиотеки (http://doc.trolltech.com/4.6/examples-sql.html).


Название: Re: QODBC + Qt 4.5.1
Отправлено: Iluha_Sokolov от Январь 06, 2010, 23:16
не получилось  :-[ что делать ((


Название: Re: QODBC + Qt 4.5.1
Отправлено: Пантер от Январь 07, 2010, 12:03
Написать сюда что делал и что не получилось.


Название: Re: QODBC + Qt 4.5.1
Отправлено: crossly от Январь 07, 2010, 15:16
не получилось  :-[ что делать ((

примеров работы с БД море... и в самой QT и в книгах.... начни с них....


Название: Re: QODBC + Qt 4.5.1
Отправлено: PlekhanovSS от Январь 07, 2010, 23:23
1) Панель управления -> Источники данных ODBC
2)Вкладка "Системный DSN" или "Пользовательский DSN"
3)Кнопка "Добавить"
4)В появившемся окне выбрать "Driver do Microsoft Access (*.mdb) " и нажать кнопку "Готово"
5)В появившемся окне, в поле "Имя источника данных" написать имя псевдонима Вашей БД (это символическое имя БД по которому и осуществляется доступ к базе через QT, например). Напишем, к примеру, tempAlias.
6)Щёлкнуть на кнопке "Выбрать" (чуть ниже поля из пункта 5).
7)Выбрать каталог с уже имеющейся базой данных и нажать кнопку "ОК"

8)Откинтесь на спинку кресла и напишите следующий фрагмент кода:

   QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("tempAlias");
    db.setUserName("");
    db.setPassword("");
    db.setHostName("172.0.0.1");

if (! db.open()) {
   //База не открылась
   ...
}
else {
   //База открылась
}

P.S. Объявить пременную db (QSqlDatabase db;) можно в заголовочном файле некоторого родительского класса, например главной формы, а инициализировать в конструкторе этого класса.


Название: Re: QODBC + Qt 4.5.1
Отправлено: BRE от Январь 07, 2010, 23:41
P.S. Объявить пременную db (QSqlDatabase db;) можно в заголовочном файле некоторого родительского класса, например главной формы, а инициализировать в конструкторе этого класса.
Объявлять эту переменную в классе не обязательно, объект QSqlDatabase можно всегда получить с использованием:
QSqlDatabase QSqlDatabase::database ( const QString & connectionName = QLatin1String( defaultConnection ), bool open = true )   [static]


Название: Re: QODBC + Qt 4.5.1
Отправлено: Mish_ka от Апрель 24, 2011, 00:33
1) Панель управления -> Источники данных ODBC
2)Вкладка "Системный DSN" или "Пользовательский DSN"
3)Кнопка "Добавить"
4)В появившемся окне выбрать "Driver do Microsoft Access (*.mdb) " и нажать кнопку "Готово"
5)В появившемся окне, в поле "Имя источника данных" написать имя псевдонима Вашей БД (это символическое имя БД по которому и осуществляется доступ к базе через QT, например). Напишем, к примеру, tempAlias.
6)Щёлкнуть на кнопке "Выбрать" (чуть ниже поля из пункта 5).
7)Выбрать каталог с уже имеющейся базой данных и нажать кнопку "ОК"

8)Откинтесь на спинку кресла и напишите следующий фрагмент кода:


а как это сделать программно?
или перефразировав вопрос. прога у клиента он её ставит, а кто настроит источники данных?