Qt 4 и базы данных

Модератор: Модераторы разделов

Аватара пользователя
TechnoMag
Сообщения: 298
ОС: Debian 8.0 Jessie

Qt 4 и базы данных

Сообщение TechnoMag »

Хочу написать программу для работы с базой данных mdb, или FireBird, SQL.
Но не знаю как установить и настроить драйвера для работы с этими базами. И какие библиотеки для этого вообще нужно ставить.
В общем проблема сводится к тому, что примеры кода для работы с базами есть. А как начать с ними работать не знаю.

У меня Debian lenny, GNOME.

Наведите пожалуйста на путь истинный.
- Домашний Linux -
Памятки для пользователя
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Qt 4 и базы данных

Сообщение frp »

TechnoMag писал(а):
20.12.2009 16:17
mdb

MS Access? Вряд ли чем-нибудь поддерживается.
TechnoMag писал(а):
20.12.2009 16:17
FireBird

AFAIK поддерживается Qt4, но в некоторых дистрибутивах libqt4-sql собран без поддержки Firebird, так что могут возникнуть проблемы.
TechnoMag писал(а):
20.12.2009 16:17
SQL

Это язык для составления запросов, а не СУБД.
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Qt 4 и базы данных

Сообщение agentprog »

frp писал(а):
20.12.2009 16:47
MS Access? Вряд ли чем-нибудь поддерживается.

я где-то читал, что через ODBC можно, но не уверен, что это именно про акцессовские базы
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Qt 4 и базы данных

Сообщение Portnov »

Через odbc - это под виндами, при наличии установленного ms access.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt 4 и базы данных

Сообщение NickLion »

А насколько эти условия жёсткие? Просто вместо Access MDB можно взять SQLite, где-то одно на другое. Или полноценное MySQL. И кроссплатформенно.
Спасибо сказали:
Аватара пользователя
TechnoMag
Сообщения: 298
ОС: Debian 8.0 Jessie

Re: Qt 4 и базы данных

Сообщение TechnoMag »

NickLion писал(а):
20.12.2009 19:23
А насколько эти условия жёсткие? Просто вместо Access MDB можно взять SQLite, где-то одно на другое. Или полноценное MySQL. И кроссплатформенно.


Можно и SQLite. Что для этого требуется установить/настроить?
- Домашний Linux -
Памятки для пользователя
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Qt 4 и базы данных

Сообщение BIgAndy »

TechnoMag писал(а):
20.12.2009 21:50
Можно и SQLite. Что для этого требуется установить/настроить?


Есть прекрасный проект -Gambas. Если не считать, что это все-таки тошнотворный бейсик (для меня) , у него все-таки хороший интерфейс к базам данных и qt
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Qt 4 и базы данных

Сообщение Crazy »

Portnov писал(а):
20.12.2009 18:50
Через odbc - это под виндами, при наличии установленного ms access.

http://www.easysoft.com/developer/interfaces/odbc/linux.html
http://www.easysoft.com/products/data_acce...iver/index.html

1. Скомпилить драйвер Qt для соответствующей СУБД/БД , если он не собран.
2. Если будешь использовать ODBC, то в настройках ODBC нужно создать источник баз данных, а из Qt обращаться к источнику.
3. Смотри в Qt Demo: SQL и Demonstration> SQL Browser. Там ODBC, SQLlite.
4. Если выберешь MySQL, то придется его настраивать.

Desipere in loco
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt 4 и базы данных

Сообщение NickLion »

http://doc.trolltech.com/4.6/sql-driver.ht...ion-3-and-above - вот SQLite под Qt4
Для Вашей системы, я так понимаю вот этот пакет, чтобы не мучаться: http://packages.debian.org/uk/lenny/libqt4-sql-sqlite
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Qt 4 и базы данных

Сообщение Olegator »

SQLite обычно по умолчанию уже собран, для firebird драйвер нужно будет собрать
Спасибо сказали:
mix1m
Сообщения: 187
ОС: openSUSE 11.2

Re: Qt 4 и базы данных

Сообщение mix1m »

а на чем писать-то? есть jdbc, к примеру:)
Попытка - первый шаг к провалу (с) Гомер
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Qt 4 и базы данных

Сообщение begin2009 »

На лазарусе есть средства работы с базами. Или паскаль не катит? Кстати, все будет кросплатформенно (вернее почти).
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt 4 и базы данных

Сообщение NickLion »

Что-то не понял... Вроде спросили о Qt4, значит C++, можно и другие к чему привязка есть... Зачем явы, паскали всякие? Бррр....
Спасибо сказали:
Аватара пользователя
TechnoMag
Сообщения: 298
ОС: Debian 8.0 Jessie

Re: Qt 4 и базы данных

Сообщение TechnoMag »

NickLion писал(а):
20.12.2009 23:39
http://doc.trolltech.com/4.6/sql-driver.ht...ion-3-and-above - вот SQLite под Qt4
Для Вашей системы, я так понимаю вот этот пакет, чтобы не мучаться: http://packages.debian.org/uk/lenny/libqt4-sql-sqlite


Так, понятно. Библиотека libtq4-sql-sqlite уже стоит. Теперь нужно создать базу. Для этого нужно установить сервер БД?
- Домашний Linux -
Памятки для пользователя
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Qt 4 и базы данных

Сообщение Crazy »

Не сервер БД, а СУБД. SQLlite встроенная система, все хранит в одном файле, работа с бд осуществляется через API.
Взято из examples по Qt.

Код: Выделить всё

     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
     db.setDatabaseName(":memory:");
     if (!db.open()) {
         QMessageBox::critical(0, tr("Cannot open database"),
             tr("Unable to establish a database connection.\n"
                "This example needs SQLite support. Please read "
                "the Qt SQL driver documentation for information how "
                "to build it."), QMessageBox::Cancel);
         return;
     }

Как понимаю создали БД.

Создали и заполнили одну таблицу

Код: Выделить всё

     QSqlQuery query;
     query.exec("create table person (id int primary key, "
                "name varchar(20), address varchar(200), typeid int)");
     query.exec("insert into person values(1, 'Alice', "
                "'<qt>123 Main Street<br/>Market Town</qt>', 101)");
     query.exec("insert into person values(2, 'Bob', "
                "'<qt>PO Box 32<br/>Mail Handling Service"
                "<br/>Service City</qt>', 102)");
     query.exec("insert into person values(3, 'Carol', "
                "'<qt>The Lighthouse<br/>Remote Island</qt>', 103)");
     query.exec("insert into person values(4, 'Donald', "
                "'<qt>47338 Park Avenue<br/>Big City</qt>', 101)");
     query.exec("insert into person values(5, 'Emma', "
                "'<qt>Research Station<br/>Base Camp<br/>"
                "Big Mountain</qt>', 103)");


создали и заполнили другую таблицу

Код: Выделить всё

  query.exec("create table addresstype (id int, description varchar(20))");
     query.exec("insert into addresstype values(101, 'Home')");
     query.exec("insert into addresstype values(102, 'Work')");
     query.exec("insert into addresstype values(103, 'Other')");

Desipere in loco
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Qt 4 и базы данных

Сообщение Olegator »

begin2009 писал(а):
21.12.2009 21:46
На лазарусе есть средства работы с базами. Или паскаль не катит? Кстати, все будет кросплатформенно (вернее почти).

мож тогда лучше в делфи писать, если не осилили работу с базами в QT?
TechnoMag писал(а):
21.12.2009 23:28
Так, понятно. Библиотека libtq4-sql-sqlite уже стоит. Теперь нужно создать базу. Для этого нужно установить сервер БД?

не потрудитесь прочитать доку. И определитесь какая Вам нужна СУБД, однопользовательская или многопользовательская? надо сначала определиться с СУБД, а потом уже с компонентами доступа
Спасибо сказали: