Работа с базой данных Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Работа с базой данных

Post by midisa » Thu Aug 05, 2010 7:42 am

Господа! Расскажите кто какие базы использует в своих проектах?

Мне нужно два варианта: Локальный и серверный.
В качестве серверного я уже определился Postgresql.
А вот в качестве локального .... не могу определиться.
Мои требования к базе:
1. Хороший БЕСПЛАТНЫЙ интерфейс для создания структуры.
2. Худо бедно какой то редактор, чтобы запрос написать (как разберусь буду свой редактор делать под Linux)
3. Чтобы конечному пользователю меньше всего ставить...
4. Чтобы можно было удобно работать с базой данных в программе, а то попробовал sqlite а там вообще фигня какая то. Значение возвращается в функцию callback, а в ней с обьектами программы вообще никак работать нельзя.

Буду признателен за ваши мысли.

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Работа с базой данных

Post by Mojo » Thu Aug 05, 2010 8:10 am

midisa wrote:Господа! Расскажите кто какие базы использует в своих проектах?

Мне нужно два варианта: Локальный и серверный.
В качестве серверного я уже определился Postgresql.
А вот в качестве локального .... не могу определиться.
Мои требования к базе:
1. Хороший БЕСПЛАТНЫЙ интерфейс для создания структуры.
2. Худо бедно какой то редактор, чтобы запрос написать (как разберусь буду свой редактор делать под Linux)
3. Чтобы конечному пользователю меньше всего ставить...
4. Чтобы можно было удобно работать с базой данных в программе, а то попробовал sqlite а там вообще фигня какая то. Значение возвращается в функцию callback, а в ней с обьектами программы вообще никак работать нельзя.

Буду признателен за ваши мысли.
Локальная wxSQLite, Firebird при чем последняя может использоваться и как серверная.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Работа с базой данных

Post by Mojo » Thu Aug 05, 2010 8:48 am

midisa wrote:Господа! Расскажите ......

4. Чтобы можно было удобно работать с базой данных в программе, а то попробовал sqlite а там вообще фигня какая то. Значение возвращается в функцию callback, а в ней с обьектами программы вообще никак работать нельзя.

......
Использование функции отклика - устаревшая технология, которая была в SQLite 1-2. В SQLite3 лучше использовать фукнцию sqlite3_prepare() (если инструкция в кодировке UTF-8) или sqlite3_prepare16() (если кодировка UTF-16).

Но в wxWidgets лучше использовать обвертку wxSQLite3 или DatabaseLayer обое их можно скачать тут http://wxcode.sourceforge.net
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Re: Работа с базой данных

Post by midisa » Thu Aug 05, 2010 10:08 am

Mojo wrote:
midisa wrote:Господа! Расскажите ......

4. Чтобы можно было удобно работать с базой данных в программе, а то попробовал sqlite а там вообще фигня какая то. Значение возвращается в функцию callback, а в ней с обьектами программы вообще никак работать нельзя.

......
Использование функции отклика - устаревшая технология, которая была в SQLite 1-2. В SQLite3 лучше использовать фукнцию sqlite3_prepare() (если инструкция в кодировке UTF-8) или sqlite3_prepare16() (если кодировка UTF-16).

Но в wxWidgets лучше использовать обвертку wxSQLite3 или DatabaseLayer обое их можно скачать тут http://wxcode.sourceforge.net
Вот вот. С этого места поподробнее если можно...
wxSQLite3 - это входит в состав wxWidgets или нужно ставить отдельно?

Простите если задаю наверное глупые вопросы т.к. я совершенно не знаю английский язык. Для меня трудно (точнее сказать невозможно) понимать что написано на английском языке.

Я буду Вам очень признателен, за краткое описание последовательности действий по установки wxSQLite3, а так же если можно простой примерчик этой технологии.

А то я уже выбился из сил выбирать базы и т.д.
И еще, вот это: wxSQLite3, с Postgres'ом сможет работать?

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Работа с базой данных

Post by Mojo » Thu Aug 05, 2010 11:01 am

midisa wrote:
Вот вот. С этого места поподробнее если можно...
wxSQLite3 - это входит в состав wxWidgets или нужно ставить отдельно?

Простите если задаю наверное глупые вопросы т.к. я совершенно не знаю английский язык. Для меня трудно (точнее сказать невозможно) понимать что написано на английском языке.

Я буду Вам очень признателен, за краткое описание последовательности действий по установки wxSQLite3, а так же если можно простой примерчик этой технологии.

А то я уже выбился из сил выбирать базы и т.д.
И еще, вот это: wxSQLite3, с Postgres'ом сможет работать?
wxSQLite3 ставится и собирается отдельно, это wx-обвертка для SQLite3.

wxSQLite3 с постгресом работать не будет, это обвертка только для SQLIte, для постргреса можно использовать Датабейслейер

Ссылки:

wxSQLite3 http://wxcode.sourceforge.net/components/wxsqlite3/

DatabaseLayer http://wxcode.sourceforge.net/components/databaselayer/

С датабэйслейером я не работал, не могу помочь.

А вот как настроить и пример попытаюсь вспомнить/найти ....

Я сам столкнулся с похожей проблемой... http://forums.wxwidgets.org/viewtopic.php?t=24481
вопрос решил, но с тех пор прошел уже год ничего не помню.....
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Post by Mojo » Thu Aug 05, 2010 1:29 pm

Вспомнил..... в каталоге с wxSQLite3 есть пример как использовать, так же в DatabaseLayer так же есть пример как его использовать....

так же я воспомнил еще одну библиотеку для работы с базами данных в wxWidgets это Debea http://debea.net/trac
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Post by midisa » Thu Aug 05, 2010 2:37 pm

Mojo wrote: ...
так же я воспомнил еще одну библиотеку для работы с базами данных в wxWidgets это Debea http://debea.net/trac
Это не пойдет т.к. там нет sql. как я понимаю, он нагромоздил над обычным sql свой интерфейс.
Недостатки:
1. Будут тормоза.
2. Без бутылки не разобраться.
3. Зачем изобретать велосипед, в то время когда все уже есть. Как я понимаю это попытка самореализации под флагом "защита от sql иньекций".

Хотя могу ошибаться...

В общем мне не понравилось, после просмотра примеров быстрого старта. Как мне кажется не закончена смысловая задумка.

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Post by Mojo » Thu Aug 05, 2010 2:43 pm

midisa wrote:
Это не пойдет т.к. там нет sql. как я понимаю, он нагромоздил над обычным sql свой интерфейс.
Недостатки:
1. Будут тормоза.
2. Без бутылки не разобраться.
3. Зачем изобретать велосипед, в то время когда все уже есть. Как я понимаю это попытка самореализации под флагом "защита от sql иньекций".

Хотя могу ошибаться...

В общем мне не понравилось, после просмотра примеров быстрого старта. Как мне кажется не закончена смысловая задумка.
Да, проект молодой, непривычный интерфейс работы с базами данных. Ща это модная концепция "NoSQL". Есть свои преимущества и недостатки.... там в принципе тот же SQL просто без ручного ввода запросов и команд.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Post by midisa » Fri Aug 06, 2010 4:02 am

Mojo wrote:
midisa wrote:
Это не пойдет т.к. там нет sql. как я понимаю, он нагромоздил над обычным sql свой интерфейс.
Недостатки:
1. Будут тормоза.
2. Без бутылки не разобраться.
3. Зачем изобретать велосипед, в то время когда все уже есть. Как я понимаю это попытка самореализации под флагом "защита от sql иньекций".

Хотя могу ошибаться...

В общем мне не понравилось, после просмотра примеров быстрого старта. Как мне кажется не закончена смысловая задумка.
Да, проект молодой, непривычный интерфейс работы с базами данных. Ща это модная концепция "NoSQL". Есть свои преимущества и недостатки.... там в принципе тот же SQL просто без ручного ввода запросов и команд.
Как Вы говорите "NoSQL", это было еще 15 лет назад... если не раньше. А стоит заметить, что это обычная обертка над sql запросом. они все равно преобразуют весь свой код в sql запрос и передают обычными средствами. Меня возмущает только одно, как вообще этим можно восхищаться? Встречаются сторонники этого всего безобразия. Это как над жавой (Java Sun M..) нагромоздить что то свое и утверждать, что это круче и безопаснее чем сама Java.
По мне так это бред. Простите за мое открытое мнение. Не могу спокойно смотреть на такие "художества".

Решил для себя, что буду разбираться с Postgres'ом. Буду подключаться к нему и работать только с ним. Под windows у меня программы работают с ним а вот под Linux ... тяжело мне усвоить. Все для меня новое. Не понятно где нужно брать заголовочные файлы, не понятно какие настройки нужно указывать в компиляторе и т.д. в общем буду разбираться.

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Post by Mojo » Fri Aug 06, 2010 6:47 am

midisa wrote: Как Вы говорите "NoSQL", это было еще 15 лет назад... если не раньше. А стоит заметить, что это обычная обертка над sql запросом. они все равно преобразуют весь свой код в sql запрос и передают обычными средствами. Меня возмущает только одно, как вообще этим можно восхищаться? Встречаются сторонники этого всего безобразия. Это как над жавой (Java Sun M..) нагромоздить что то свое и утверждать, что это круче и безопаснее чем сама Java.
По мне так это бред. Простите за мое открытое мнение. Не могу спокойно смотреть на такие "художества".
Ну последние лет 5 идея NoSQL стала довольно таки популярной.... (судя по количеству статей на эту тему). А вот Java это да, это безобразие, вставлять прокладку-посредника между операционкой и программой и утверджать, что это эффективное решение, конечно глупо.
midisa wrote:
Решил для себя, что буду разбираться с Postgres'ом. Буду подключаться к нему и работать только с ним. Под windows у меня программы работают с ним а вот под Linux ... тяжело мне усвоить. Все для меня новое. Не понятно где нужно брать заголовочные файлы, не понятно какие настройки нужно указывать в компиляторе и т.д. в общем буду разбираться.
Постгрес имеет свои недостатки, для больших вернее для очень больших проектов постгрес хорошее дело, а если проект средний или маленький, то ставить СУБД которая весит под 40 мегов (при том, что сама программа весит мегов 5-10) дело сомнительное.... для средних проектов лучше использовать СУБД Firebirdsql во-первых вес маленький (около 10 мегов) во-вторых можно использовать не только как клиент-сервер, но и вообще сделать встраиваемымой (я уж не говорю, про наличие множества документации на русском языке). Например поплуярный у бухгалтеров пакет Бизнес-Пак использует встраиваемый Firebirdsql (если быть точнее, то отдельный dll-файл в каталоге с программой). Поэтому, мне лично больше импонирует Firebird.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Post by midisa » Fri Aug 06, 2010 9:21 am

Mojo wrote: Например поплуярный у бухгалтеров пакет Бизнес-Пак использует встраиваемый Firebirdsql (если быть точнее, то отдельный dll-файл в каталоге с программой). Поэтому, мне лично больше импонирует Firebird.
Я смотрел Firebird когда писал под винду. Что мне не понравилось:
1. ODBC драйвера корявые. При попытке получить список таблиц в базе, драйвера сразу висли.
2. Менеджер базы данных корявый. Я создал таблицу и пытаюсь ее переименовать ... а не тут то было. Звоню товарищу, он использует только Firebird. А он говорит так и должно быть. Мы уже к этому привыкли. У нас кто пишет на делфи (он пишел только на делфи), альтернативы другой нет ...
В общем я потратил на рассмотрение этого Firebird два дня ... и когда увидел Postgres, то заплакал от радости.
Если под виндой у Firebird такие косяки, то что говорить о Linux'e.

Честно сказать, у меня нет желания использовать Firebird.

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Post by Mojo » Sat Aug 07, 2010 7:23 am

midisa wrote:
Mojo wrote: Например поплуярный у бухгалтеров пакет Бизнес-Пак использует встраиваемый Firebirdsql (если быть точнее, то отдельный dll-файл в каталоге с программой). Поэтому, мне лично больше импонирует Firebird.
Я смотрел Firebird когда писал под винду. Что мне не понравилось:
1. ODBC драйвера корявые. При попытке получить список таблиц в базе, драйвера сразу висли.
2. Менеджер базы данных корявый. Я создал таблицу и пытаюсь ее переименовать ... а не тут то было. Звоню товарищу, он использует только Firebird. А он говорит так и должно быть. Мы уже к этому привыкли. У нас кто пишет на делфи (он пишел только на делфи), альтернативы другой нет ...
В общем я потратил на рассмотрение этого Firebird два дня ... и когда увидел Postgres, то заплакал от радости.
Если под виндой у Firebird такие косяки, то что говорить о Linux'e.

Честно сказать, у меня нет желания использовать Firebird.
Ну эт проблемы скорее бизнеспака, чем Firebird.
Firebird очень зрелая СУБД, потому, что изначально это был борландовский InterBase, потом переименовали....
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

midisa
Earned some good credits
Earned some good credits
Posts: 113
Joined: Tue Jun 22, 2010 4:15 pm
Contact:

Post by midisa » Sat Aug 07, 2010 3:43 pm

Mojo wrote:
midisa wrote:
Mojo wrote: Например поплуярный у бухгалтеров пакет Бизнес-Пак использует встраиваемый Firebirdsql (если быть точнее, то отдельный dll-файл в каталоге с программой). Поэтому, мне лично больше импонирует Firebird.
Я смотрел Firebird когда писал под винду. Что мне не понравилось:
1. ODBC драйвера корявые. При попытке получить список таблиц в базе, драйвера сразу висли.
2. Менеджер базы данных корявый. Я создал таблицу и пытаюсь ее переименовать ... а не тут то было. Звоню товарищу, он использует только Firebird. А он говорит так и должно быть. Мы уже к этому привыкли. У нас кто пишет на делфи (он пишел только на делфи), альтернативы другой нет ...
В общем я потратил на рассмотрение этого Firebird два дня ... и когда увидел Postgres, то заплакал от радости.
Если под виндой у Firebird такие косяки, то что говорить о Linux'e.

Честно сказать, у меня нет желания использовать Firebird.
Ну эт проблемы скорее бизнеспака, чем Firebird.
Firebird очень зрелая СУБД, потому, что изначально это был борландовский InterBase, потом переименовали....
Я говорю о самой обвязке вокруг базы данных Firebird, драйвера, менеджер и т.д. все что я увидел, мне очень не понравилось.

Относительно Бизнес пака я промолчу... разговор о бизнес паке, не для этой темы.

P.S. Эту тему можно закрывать. С Postgres'ом разобрался. Если кому будет интересно, то выложу примитивный проект (15 строк), чтобы понять как у него там все это работает и дам описание какие настройки включить в компилятор.

User avatar
T-Rex
Moderator
Moderator
Posts: 1189
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Sat Aug 07, 2010 8:43 pm

Мне почему-то кажется что в случае клиентской базы + серверной, DatabaseLayer выигрывает во многих местах. Если писать код с умом, то можно ограничиться минимальными переделкам для работы с базой, и просто подменять класс DatabaseLayer'а с SqliteDatabaseLayer на PostgreDatabaseLayer когда надо.

в случае с wxSQLite3 для локальной базы такой гибкости не будет.

ЗЫ: Firebird как-то пробовали для локальной базы... ну.. уж много там странного. Какие-то непонятки с русскими путями и с пробелами в путях... в общем странный он, SQLite постабильнее будет да и пошустрее (ИМХО).

Post Reply