Russian Qt Forum

Qt => Базы данных => Тема начата: NetWorm от Апрель 11, 2013, 21:13



Название: Active Record для Qt
Отправлено: NetWorm от Апрель 11, 2013, 21:13
Вот для php существует ActiveRecord http://www.code-igniter.ru/user_guide/database/active_record.html (http://www.code-igniter.ru/user_guide/database/active_record.html)... Существует ли подобное для Qt???


Название: Re: Active Record для Qt
Отправлено: quiet_readonly от Апрель 13, 2013, 04:04
Qt или какие-то другие библиотеки здесь ни при чём. Что именно вызывает сложности в реализации такого на C++?


Название: Re: Active Record для Qt
Отправлено: NetWorm от Апрель 13, 2013, 07:41
Велосипед не хочется изобретать!!!


Название: Re: Active Record для Qt
Отправлено: quiet_readonly от Апрель 14, 2013, 05:25
http://habrahabr.ru/post/105191/

Но главной проблемой скорее всего станет невозможность обойти в цикле все члены класса и определить их имена (в коде) и типы. Это же C++. Qt даёт рефлексию для слотов/сигналов и Q_PROPERTY, но объявлять их - то ещё удовольствие.

Лично я такие проблемы решал с помощью библиотек clang, просто делал генератор кода, который в нужных классах обходил потомков, и на основе имени и типа (CXType) члена класса печатал что-либо в выходной файл. В принципе, clang также даёт средства для правки существующего файла с помощью серии замен текста.

В ORM для Qt используют boost::serialization, а где-то, кажется, тоже генерацию кода.


Название: Re: Active Record для Qt
Отправлено: chewire от Май 12, 2013, 02:49
Если интересно есть собственная реализация ORM на кьюте, без бустов, директив препроцессору и макросов :) https://github.com/victorzhuk/eorm милости прошу


Название: Re: Active Record для Qt
Отправлено: NetWorm от Май 13, 2013, 06:07
Благодарю.. Посмотрю...
Я конечно уже написал свою библиотеку


Название: Re: Active Record для Qt
Отправлено: thechicho от Май 13, 2013, 13:41
если написал, выложи исходники и в тему добавь [РЕШЕНО]


Название: Re: Active Record для Qt
Отправлено: panAlexey от Май 13, 2013, 16:48
если написал, выложи исходники и в тему добавь [РЕШЕНО]
Вы представляете себе объем таблиц в большом проекте?
и под каждую таблицу писать собственный класс и оборачивать - замучаешся.
Может по этому ОРМ не особо популярен?
Я думаю тут самое место визуальным конструкторам и общим классам с параметризацией.
Больше визуальности! Меньше рукопашной :)


Название: Re: Active Record для Qt
Отправлено: thechicho от Май 13, 2013, 18:04
//Вы представляете себе объем таблиц в большом проекте?
чо представляю? :)

//Вот для php существует ActiveRecord http://www.code-igniter.ru/user_guide/database/active_record.html... Существует ли подобное для Qt???
исходники этого, реализованное тс средствами кьют.
таблицы и другие подробности проекта не нужны.

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


Название: Re: Active Record для Qt
Отправлено: NetWorm от Май 14, 2013, 05:20
Я сделал просто тупое переписывание php ActiveRecord на Qt.


Название: Re: Active Record для Qt
Отправлено: thechicho от Май 14, 2013, 10:31
какая разница как ты сделал, главное сделал.
а люди, которые попадут в эту тему сами решат подойдет твое решение или нет.
выложи код


Название: Re: Active Record для Qt [РЕШЕНО]
Отправлено: NetWorm от Май 14, 2013, 10:45
Выкладываю исходник... Он еще не допилин до конца.. Дописывается в процессе...