powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Генерация SQL - классами.
25 сообщений из 28, страница 1 из 2
Генерация SQL - классами.
    #35331473
_xrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно стал задумываться над вопросом. Сейчас нахожусь на дописывании - саппорте двух КИС.
Логика одной говорит. Все просто:
Создавай таблицы пиши логику на стороне сервака. и ваяй вот так-то так-то ГУИ все просто.
Вторая.
Есть БД. Есть к ней стандартные классы. г(Backoutdoc, Regdoc, ItemoutDoc - и т.д) Вот эти классы сами генерят sql. И на сохранение, и на удаление и на селекты. Но делают они это криво, и не всегда спасает. Приходиться ваять иногда самому. Ну конструктор гуи там тоже.

Внимание Вопрос.
Хочется узнать как живут другие: В ваших КИС - как прописывают запросы? как они хранятся?. Хранятся ли они жестко в коде?. или подгружаются Более интересно конечно если они генерятся рантайм. Спасибо.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант1, т.к варинт2 совсем непонятен.
авторВот эти классы сами генерят sql
искусственный интелект что-ль?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331578
_xrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петро123
искусственный интелект что-ль?


Точно..
Например есть
DOC (id uniqueidentifier, from uniqueidentifier, to uniqueidentifier, rem Varchar(20))

Под него заточен класс:
class Doc: public SqlObject
public:
pid: GUID;
Contragent* from; // в базе это внешние ключи, в коде ассоциации
Contragent* to;
rem: std::string
end;


Обращение в коде:
Doc doc;
Doc.to = to1; Doc.from=from;
Doc.save()

в базу идет sql - insert doc (id, from, to) values (newID(), ... , ..);
типо того
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331666
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
охренеть. И всё это ручками самописка?
- есть куча прокладок-систем между объектами на клиенте и плоской СУБД. Вплоть до ООБД.
Чтобы самому неписать.
2. Геморрой всё это. Грамотный программист БД + грамотный архитектор клиентской части сделают по варианту1 лучше, проще и дешевле.
Рантайм запросы - это пока фантастика.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331674
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Рантайм запросы - это пока фантастика.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
не совсем так, например:
"Открыть шторы!"
"Включить свет"
можно научить с грехом пополам.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331683
_xrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
есть куча прокладок-систем

Какие прокладки-системы вы знаете, киньте ссылки.
А система 2ая нормально работает, правда время вхождения программиста большое.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331692
_xrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Рантайм запросы - это пока фантастика.

Почему это фантастика.. Еще древний 1С так делал.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331718
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_xrusКакие прокладки-системы вы знаете, киньте ссылки.
Такое слово как ORM , неужели не слышали? Например для Java: TopLink, Hibernate, Kodo и т. д. Аналогичная хрень есть и для других ЯП.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331737
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет генерации SQL "на лету"...
Например, в Oracle есть такое понятие, как Dynamic SQL, который предназначен именно для этого (хотя это не классы, это программист прописывает, просто там есть некоторые переменные части).
Однако, этим пользоваться надо умеренно, ибо снижает производительность работы. В Oracle разобранный запрос с планом выполнения хранится в кэше с той идеей, что одинаковые запросы повторяются в рамках приложения. Если они действительно повторяются, то за счет кэша выполняемая сервером работа уменьшается.
Если мы применяем динамический SQL, мы фактически заставляем сервер каждый раз выполнять разбор SQL и строить ему план выполнения, т.е. не используем эту возможность (кэширование запросов).
Полагаю, что похожие средства есть и в других БД
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331782
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА система 2ая нормально работает, правда время вхождения программиста большое.
- и чем бОльший год на дворе, тем бОльше вхождение (и зарплата).

tru55
это просто склейка текста запроса. Я имел ввиду уровень выше.
Типа поигрался классами на клиенте, кости бросил.... и вот вам - эффективный запрос с другими JOINами

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331796
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov _xrusКакие прокладки-системы вы знаете, киньте ссылки.
Такое слово как ORM , неужели не слышали? Например для Java: TopLink, Hibernate, Kodo и т. д. Аналогичная хрень есть и для других ЯП.
+1
в Delphi
Код: plaintext
1.
Class.SaveToStream;
BD_BLOB.SaveToBlob;
:)
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331809
_xrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
.SaveToBlob;


Какой еще сайв_то_блоб. Вы не понимаете наверно о чем мы говорим.
Kachalov - спс интересно.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331823
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
tru55
это просто склейка текста запроса. Я имел ввиду уровень выше.
Типа поигрался классами на клиенте, кости бросил.... и вот вам - эффективный запрос с другими JOINами


Дело не в склейке текста. Дело в том, будет ли запрос повторяться, или каждый раз после "игры" он будет другой (ведь достаточно отличия в 1 символе, чтобы получился повторный разбор)
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331853
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_xrus
Какой еще сайв_то_блоб. Вы не понимаете наверно о чем мы говорим.

это ты пока не понимаешь. Это простейший ORM.
Не надо всё усложнять так, чтобы "порог вхождения был большой" :).
Удачи.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331872
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55
Дело в том, будет ли запрос повторяться, или каждый раз после "игры" он будет другой (ведь достаточно отличия в 1 символе, чтобы получился повторный разбор)
повторный разбор - малая из бед, которая решается техническими срествами (не сегодня завтра).
После отличия в один символ, он вообще может выдавать неправильный результат.
/topic/12992#57518
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35331948
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 tru55
Дело в том, будет ли запрос повторяться, или каждый раз после "игры" он будет другой (ведь достаточно отличия в 1 символе, чтобы получился повторный разбор)
повторный разбор - малая из бед, которая решается техническими срествами (не сегодня завтра).
После отличия в один символ, он вообще может выдавать неправильный результат.
/topic/12992#57518

Ошибки - это отдельная статья.
Я то хотел подчеркнуть другую сторону (сам с этим сталкивался). Люди ради удобства программирования или настройки приложения идут на подобную динамическую генерацию, а то, что при интенсивной нагрузке на базу это может серьезно просадить производительность - об этом не думается...
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35332801
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ru55 +1
да, мы говорим о двух сторонах генерации SQL на клиенте.
Бывает, толковый программист со знанием ООП, но с более слабым знанием СУБД начинает "тянуть одеяло" на клиента и городить удивительные огороды.
Кстати в ORM есть куча недостатков и ограниченности по применению.

"Сложнее всего достигнуть простоты..."
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35333015
rilio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сугубо ИМХО...
Очень часто при оценке стоимости и рисков проекта от ORM отказываются.
Хотя бы потому, что SQL-программиста найти гораздо проще, чем разбирающегося в этой ORM (хорошо еще, если не самодельной)
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35333088
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rilioСугубо ИМХО...
Очень часто при оценке стоимости и рисков проекта от ORM отказываются.
Хотя бы потому, что SQL-программиста найти гораздо проще, чем разбирающегося в этой ORM (хорошо еще, если не самодельной)
- я лично не фанат использования ORM, но хочу отметить что в Java есть даже спецификация JPA, расчитанная на использование сторнних ORM, т. е. на сегодняшний день это возможность использования ORM в Java стандартизована и если программист не разбирается в стандартах - это грустно. Не хочется начинать холивары, но технология EJB успешно существует уже более 11-ти лет и использование ORM - это одна из существенных составляющих данной технологии.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35333321
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,
в Java стандартизована и если программист не разбирается в стандартах - это грустно. Не хочется начинать холивары
ну, Java - отдельный разговор. Там много чего знать нужно :).

Код: plaintext
1.
2.
3.
Обращение в коде:
Doc doc;
Doc.to = to1; Doc.from=from;
Doc.save()
на 1С похоже.
:)


авторНу конструктор гуи там тоже
Интересно, там таблицы есть? В каком они виде?
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35333546
rilio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- я лично не фанат использования ORM, но хочу отметить что в Java есть даже спецификация JPA, расчитанная на использование сторнних ORM, т. е. на сегодняшний день это возможность использования ORM в Java стандартизована и если программист не разбирается в стандартах - это грустно. Не хочется начинать холивары, но технология EJB успешно существует уже более 11-ти лет и использование ORM - это одна из существенных составляющих данной технологии.
Больше года как отошел от Java, но, если не ошибаюсь:
- JPA возникла только в EJB3, это, кажется, 2 или 3 года назад?
- различия между теми же EJB2 и EJB3 были очень существенными. Программистам приходилось переучиваться.
- ORM - это далеко не только EJB. Hibernate, JDO и куча еще всякого. Видел работающие системы на EJB, где как раз ORM была не стандартной, а самодельной.
- Есть стандарты, а есть их реализации. Допустим, программист всю дорогу работал с JDO, а у нас - Hibernate. Сколько ему понадобится времени на адаптацию? IMHO не один день...
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35333580
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rilio- JPA возникла только в EJB3, это, кажется, 2 или 3 года назад?
- да, но необходимость использования ORM была заложена в спецификацию EJB в виде наличия в спецификации CMP Entity компонентов и языка EJB QL, т. е. 11 лет назад!

rilio- различия между теми же EJB2 и EJB3 были очень существенными. Программистам приходилось переучиваться.
- т. к. EJB3 заметно проще чем EJB2, то "переучиваться" легко и приятно, слово "приходилось" вряд ли тут уместно :)


rilio- ORM - это далеко не только EJB. Hibernate, JDO и куча еще всякого. Видел работающие системы на EJB, где как раз ORM была не стандартной, а самодельной.
- а кто говорил что ORM == EJB ? Дословно: "использование ORM - это одна из существенных составляющих данной технологии", да и вообще, я привел Java/EJB/JPA как пример знакомой мне технологии использующей ORM, уверен что в других языках есть нечто подобное, например PHP/Doctrine и т. п.

rilio
- Есть стандарты, а есть их реализации. Допустим, программист всю дорогу работал с JDO, а у нас - Hibernate. Сколько ему понадобится времени на адаптацию? IMHO не один день...
- есть стандарты, а есть их кривые реализации :) Стандарт JPA тем и хорош что не надо вникать в особенности TopLink или Hibernate, если они реализуют стандарт JPA, то достаточно знать только его. Переписывать грамотный EJB3 код (без native SQL и т. п.) из-за смены ORM обычно не требуется :)
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35347541
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Код: plaintext
1.
Class.SaveToStream;
BD_BLOB.SaveToBlob;
:)
какой странный синтаксис.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35347545
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще имхается мне что варианты 1 или 2 нужно выбирать руководствуясь требованием проекта.
вариант 2 мне почемуто напоминает патерн интерпретатор, характеризуемый так:
"Проблема: Имеется часто встречающаяся, подверженная изменениям задача."
"Решение: Создать интерпретатор, который решает данную задачу. "
Помоему при значительной общности задач обработки объектов вариант 2 может показаться очень разумным. А кривоватось, она лишь следствие недоработанности идеи.
...
Рейтинг: 0 / 0
Генерация SQL - классами.
    #35348230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm Petro123
Код: plaintext
1.
Class.SaveToStream;
BD_BLOB.SaveToBlob;
:)
какой странный синтаксис.
- Класс! На тебе поток, сохранись в него!
- БД! На тебе поток, сохрани его!

При "рождении" класса из БД, порядок обратный.

ЗЫ. Суть в том, что средства сериализации объектов уже давно заложены в ЯП.
И с некоторыми ограничениями могут успешно использоваться для сохранения в БД объектной модели клиента.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Генерация SQL - классами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]