Russian Qt Forum

Qt => Базы данных => Тема начата: MAGrikh от Май 05, 2009, 11:47



Название: Базы данных для программы
Отправлено: MAGrikh от Май 05, 2009, 11:47
я очень далек от программирования Баз данных, а потому никак не могу сообразить.

Мне нужно использовать в своей программке на QT несколько связанных таблиц. Редактировать их из программы необходимости нет, но в теории возможность ручками подправить должна быть (заполнить я их хочу в ручную).
Программа должна будет постоянно запрашивать данные из них, делать выборки, находить значения в зависимости от того что нужно получить.

Во всех примерах есть КАК РАБОТАТЬ С БАЗАМИ ДАННЫХ, но нигде не могу найти КАК ИХ СОЗДАТЬ.
Важный момент - необходима БД поддерживаемая силами QT, т.е. SQL сервер на машине где будет работать программка стоять НЕ БУДЕТ...
Что лучше использовать в этом случае?!


Название: Re: Базы данных для программы
Отправлено: spirit от Май 05, 2009, 11:50
SQLite можно. база создатся автоматически при ее открытии (если она не была создана).


Название: Re: Базы данных для программы
Отправлено: MAGrikh от Май 05, 2009, 11:58
А как бы мне создать самому эти базы и заполнить их?!



Название: Re: Базы данных для программы
Отправлено: ритт от Май 05, 2009, 11:59
http://sql.ru/ ))


Название: Re: Базы данных для программы
Отправлено: lit-uriy от Май 05, 2009, 12:13
>>А как бы мне создать самому эти базы и заполнить их?!
Скачай программу SQLite Database Browser (https://sourceforge.net/projects/sqlitebrowser/), она предназначена для SQLite.
Можно создавать/редактировать БД.

Ещё один вариант: запусти демку %QTDIR%/demo/sqlbrowser
При запуске выбери драйвер QSQLITE и введи полное имя (вместе с путём) к БД (где ты хочешь ее создать) и нажми "Ок"
создастся БД, ну а дальше с помощью SQL выражений создай таблицы, например:
Код
SQL
CREATE TABLE MYTABLE(
 id Integer,
 firstField Text,
 secindField Text
);
строки в таблицу можно будет добавлять уже интеракивно, через контекстное меню таблицы.


Название: Re: Базы данных для программы
Отправлено: MAGrikh от Май 05, 2009, 12:24
ООО похоже то что нужно.
СПАСИБО!!!


Название: Re: Базы данных для программы
Отправлено: Admin от Май 05, 2009, 13:22
свой кусочек приведу

Код
C++ (Qt)
   //check tables
   QStringList tables = m_sqlDB.tables();
 
   //check url tables
   if(!tables.contains("urls",Qt::CaseInsensitive))
   {
       qDebug() << "CREATE TABLE urls";
   QSqlQuery q;
       //id - unique
       //site - urls site
       //date_add - date add site
       //comments - add comments for site
       if(!q.exec("CREATE TABLE urls(id integer primary key AUTOINCREMENT, site text, date_add integer)"))
       {
           qDebug() << "CREATE TABLE urls ERROR" << q.lastError() ;
       }
   }