Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Работа с базами данных с помощью С/С++  (Прочитано 3752 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Необходимо написать программу на С/С++ для Linux, с возможностью самостоятельно создавать таблицы и управлять (сохранение, редактирование, запросы) ими (подобие СУБД). Посоветуйте, с помощью чего можно это реализовать. Знаю, в борланде есть какие-то компоненты для работы с базами данных, что-то вроде "db***" (пользоваться ими не доводилось). Есть ли что-то подобное для Linux? Пишу с помощью GTK+.

Оффлайн Garfeild

  • Активист
  • *
  • Сообщений: 744
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #1 : 28 Мая 2009, 18:46:38 »
Я недавно писал курсовой проект, тоже с базами данных.
Я использовал SQLite. Для этой базы данных есть своя библиотека, через которую и осуществляется работа с БД,

Оффлайн AlexH

  • Участник
  • *
  • Сообщений: 147
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #2 : 28 Мая 2009, 19:35:36 »
Qt имеет набор классов, нативные драйвера, а также поддержку модель-представление для работы с БД. Только в отличие от борланда все делается не мышкой, а ручками
arch x86_64

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5744
  • Все по палатам!
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #3 : 28 Мая 2009, 20:11:42 »
Переношу свою программу с Дельфи(БД - MS Access) на QT(БД SQLite).
БД конвертнул без проблем. SQL запросы практически без изменений работают.
Размер исходников в строках получается почти такой-же (если не меньше).
Извините, я все еще учусь

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #4 : 01 Июня 2009, 00:25:58 »
SQLite - то, что нужно! Спасибо! :)

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #5 : 10 Июня 2009, 12:59:33 »
В процессе работы возник вопрос:

Есть ли возможность удалять поля из таблицы? Если есть, то как это реализовать, подскажите пожалуйста.

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Работа с базами данных с помощью С/С++
« Ответ #6 : 10 Июня 2009, 19:33:50 »
Удалять поля из БД?
Вы уверены, что верно спроектировали структуру БД?
Социальная сеть не фанатично настроенных Linuxойдов - http://www.welinux.ru

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #7 : 10 Июня 2009, 20:25:14 »
Да, скорее всего вы правы. Но, к  сожалению, другие структуры хранения данных не будут столь же наглядны, как эта. :(

Если возможности удалять поля нет, единственный вариант - хранить в БД данные в одной структуре, а выводить в другой, для большей наглядности.
Является ли такой подход разумным?

P.S. Прошу совета.

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Работа с базами данных с помощью С/С++
« Ответ #8 : 10 Июня 2009, 20:31:52 »
Если я правильно понимаю, то вам нужно копать в строну представлений(view).

А вообще поскольку никаких условий нет, то что-то советовать сложно. Ну или структуру БД глянуть.
Социальная сеть не фанатично настроенных Linuxойдов - http://www.welinux.ru

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #9 : 10 Июня 2009, 20:54:03 »
Вот так правильно хранить мои данные:

Дата
06.10.2009
06.10.2009
06.10.2009
Событие
Дискотека
Поход в кино
Поход в театр
Цена
100
200
300

Но с моей точки зрения наглядней будет вот так:

Дата
06.10.2009
Дискотека
100
Поход в кино
200
Поход в театр
300
(так как события("дискотека","кино" и т.д.) одинаковы для всех дат, отличаться будут только цены)

Но так как удалять поля не есть рациональным решением (а пользователь может захотеть убрать какое то событие вообще(для всех дат)), то тут у меня и возникла проблема.
« Последнее редактирование: 10 Июня 2009, 21:03:08 от RaMoN »

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Работа с базами данных с помощью С/С++
« Ответ #10 : 10 Июня 2009, 21:09:33 »
Я в БД не слишком силен и не очень хорошо там помню многое, Но тем не менее, правильным вариантом, как мне кажется было бы то, что лежит во вложении.

Собственно тип события(или все) определяется  соответствующим SQL запросом.


« Последнее редактирование: 10 Июня 2009, 21:11:11 от digiwhite »
Социальная сеть не фанатично настроенных Linuxойдов - http://www.welinux.ru

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #11 : 10 Июня 2009, 21:32:30 »
Я в БД не слишком силен и не очень хорошо там помню многое, Но тем не менее, правильным вариантом, как мне кажется было бы то, что лежит во вложении.

Собственно тип события(или все) определяется  соответствующим SQL запросом.




Эмм... Да, вы правы! :) (прошу прощения за некорректный вид :-[)
А выводить в предпочитаемый вид(который я показал) с помощью представлений, я так понимаю?
« Последнее редактирование: 10 Июня 2009, 21:47:11 от RaMoN »

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Работа с базами данных с помощью С/С++
« Ответ #12 : 10 Июня 2009, 21:39:03 »
Тут чего-то не могу сказать точно. По идее, можно обойтись и без представлений. Просто в зависимости от выбранных событий генерировать SQL запрос на лету да показывать вывод.
Социальная сеть не фанатично настроенных Linuxойдов - http://www.welinux.ru

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Работа с базами данных с помощью С/С++
« Ответ #13 : 10 Июня 2009, 21:48:00 »
Спасибо большое за помощь! :)
Буду разбираться, что будет мне удобнее: либо генерировать запросы для вывода, либо создавать соответствующее представление и выводить его.

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Работа с базами данных с помощью С/С++
« Ответ #14 : 10 Июня 2009, 22:13:49 »
Да не за что!
Социальная сеть не фанатично настроенных Linuxойдов - http://www.welinux.ru

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.