powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание зависимостей на поля и таблицы входящие в execute statement
101 сообщений из 101, показаны все 5 страниц
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003245
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток,

в некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement. До сих пор приходилось выкручиваться через type of column для входных, выходных и прочих переменных. Но зачастую в строке запроса используются поля которые незачем куда то вытаскивать создавая для них переменные или выходные параметры а зависимость на них и их содержащие таблицы должна существовать. Как Вы поступаете в подобных случаях?

не рисовать же рядом тупо запросы которые ничего не возвращают или переменные (c type of column) которые никому не нужны дабы только создать на них зависимость?

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

Идеален был бы просто оператор создания зависимости, но найти такой мне не удалось.

поделитесь
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003251
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже поднимал раньше эту тему тут
но красивого решения не вижу и по сей день
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003258
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

>в некоторых случаях отказаться от execute statement не получается
честно говоря мне приходит в голову только соединение с внешней базой и создание метаданных

>встаёт вопрос а как наложить зависимости на участников execute statement
нормально никак. Только через изврат с невызываемыми операторами.

>Идеален был бы просто оператор создания зависимости, но найти такой мне не удалось.
потому что таких нет

>возможно есть другая, более красивая, возможность прописать зависимость без извращений, которая мне неизвестна?
не использовать execute statement там где он не нужен. Если нужна динамика собирай на клиенте execute block

Лучше бы показали задачу где без execute statement не обойтись. Тогда может чего и подсказали бы
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003266
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а... это снова байда про динамические сортировки и условия фильтрации пропихиваемые в ХП. Ну тогда увы ответа не будет. Там уже всё сказано было
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003273
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и эти люди сетуют, что до них базу курочили "мальчики по вызову"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003284
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи эти люди сетуют, что до них базу курочили "мальчики по вызову"...


В крупных проектах должен быть человек (измученный нарзаном), который может сказать - "что это вы тут за херню наворотили" :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003285
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,
....
Лучше бы показали задачу где без execute statement не обойтись. Тогда может чего и подсказали бы
ну к примеру, ORDER BY создаётся динамически и список полей передаются в процедуру через запятую в виде строки и имена полей ещё надо допилить примерно так I_ORDER_BY = replace(I_ORDER_BY,'O_IDCOUNTRY','PARTNERS.id_country');
т.к. имена полей на клиенте отличаются от имен полей в базе (выходящие данные с префиксом O_, а исходящие с I_)
сие не мои идеи по именованию и менять там что то уже поздно, да и никто не даст. (замечу что речь не всегда идёт о сортировке выходных данных в самом гриде, иногда это сортировка вромежуточных результатов в процедуре).

а адея формирования блока на клиенте мне нравится не очень ввиду потенциальных проблем с универсальностью. Прийдётся отказаться от компонентов в виде допиленных Gridов которые автоматом сами передают список полей (с префиксом) в процедуру выборки.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003291
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи эти люди сетуют, что до них базу курочили "мальчики по вызову"...

это как раз пример танцев с результатами работы тех самых мальчиков. Когда приходишь и говоришь что все надо переделывать а тебе говорят нет, вы только тут и тут поправьте и улучшите. Все денег стоит.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003297
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я собственно в основном эту дискуссию затеял зная что сюда разработчики заглядывают FB. Чем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимости, как раз для таких случаев.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003302
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoв некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement.А зачем ?

PS а как наложить зависимости на запросы, выдаваемые приложением ?
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003303
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoЧем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимостиЗависимости кого от чего ? Динамический запрос по своей сути неизвестен заранее и не предсказуем.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003305
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

хрень твоя идея с зависимостями. Ибо в качестве параметра сортировки мне никто не помешает передать

Код: sql
1.
order by (select count(*) from non_existing_table)



а можно и существующую. Если у вас часть запроса формируется на клиенте а часть хранится на сервере, то ту часть что хранится на клиенте никакими зависимостями не отследить. execute statement это фактически эмуляция динамически формируемых запросов приходящих с клиента. Да собственно в вашем случае часть запроса именно от туда и приходит
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003316
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladMikhail Tchervonenkoв некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement.А зачем ?

PS а как наложить зависимости на запросы, выдаваемые приложением ?

если под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. По крайней мере в том что пишу я нет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. Другими словами вся логика должна сидеть в базе. Это касается и проектов на FB и на MSSQL. Исключение только MySQL т.к. хранимки там появились сравнительно недавно и по отзывам ещё не всё допилено.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003319
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladДинамический запрос по своей сути неизвестен заранее и не предсказуем.
"как же так - ведь ES хранится в процедуре или триггере. ааааа!!!"

:-)

p.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003322
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoто в идеале он вообще не должен работать с таблицами на прямую, только с хранимками.
это совершенно ошибочное мнение. Однако, никто не запрещает такой подход. При этом жевание кактуса с ES - исключительно ваши личные проблемы. Представьте себе, что ES вообще отсутствует.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок.
Абсолютно 100%.
Ужоснах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003328
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,

хрень твоя идея с зависимостями. Ибо в качестве параметра сортировки мне никто не помешает передать

Код: sql
1.
order by (select count(*) from non_existing_table)



....

ну да, если туда пальцами набивать эти строки то конечно. А вот когда эти строки формирует компонент на клиенте на основе своих же свойств полей и ты знаешь что прийдёт в хранимку, то вопрос только в комбинации пришедшего и предварительной обработке.
Заметьте, я хочу просто прописать в хранимке зависимости из execute statement. Остальные вопросы уже решены, и на клиенте нет логики на которую нужно накладывать эти зависимости. И походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003332
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoесли под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками.
Есть рациональное зерно, и такой подход имеет право жить. Более того, в нашем проекте генерится код для вызова процедур в двух версиях: с query в виде первого параметра и без. Если передать Query, то результаты работы процедуры будут там. Многоярусные Delphi-строки забываются как страшный сон.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003333
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко Дмитрий> В крупных проектах должен быть человек (измученный нарзаном),
> который может сказать - "что это вы тут за херню наворотили" :)
"Любой русский программист, после пары минут чтения кода,
обязательно вскочит и произнесет, обращаясь к себе: переписать это все нафиг!"
(с)

Для тех кто не помнит этой фразы - древняя, но всё ещё актуальная притча:
http://www.rushumor.com/stories/32.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003334
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoесли под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. По крайней мере в том что пишу я нет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%.

это не есть хорошо. По крайней мере процедуры выбора должны использоваться в крайнем случае когда без них не обойтись. Ибо оптимизатор лучше разрулит чистый запрос. Открой для себя вьюхи для более простых случаев. А уж джойн процедуры с процедурой это совсем гиблое дело. Частично конечно оптимизатор разруливает через HASH/MERGE JOIN, но результат не обязательно будет оптимальным. ибо оценить кардинальность ХП практически невозможно.


Mikhail TchervonenkoДругими словами вся логика должна сидеть в базе. Это касается и проектов на FB и на MSSQL.

для процедур модификации данных согласен. Хотя для всяких справочников можно сделать исключение.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003335
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoА вот когда эти строки формирует компонент на клиенте на основе
своих же свойств полей
....то он с лёгкостью может составить запрос типа
Код: sql
1.
select * from SP order by <эта самая строка>


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003337
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoвозможно есть другая, более красивая, возможность прописать зависимость без извращений, которая мне неизвестна?
Более красивой я не знаю. Пришлось писать своё. Выглядело так 7778565
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003343
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

ну да ладно забьём на левые таблицы. Вот в трёшке появились пользовательские PSQL функции, а ещё они в пакетах могут сидеть. Удачи вам в разруливании всего этого когда начнёте их использовать в своих динамических запросах
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003344
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Mikhail TchervonenkoИ походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет.
есть DECLARE VARIABLE с TYPE OF. Вы написали это в первом посте.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003345
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок.
Абсолютно 100%.
Ужоснах.

когдато, фирма для которой писали софт вызвала Gutachter, типа эксперт от мелкософта (проект был на MSSQL + С#) который лазил по проекту и выискивал в том числе и прямые обращения к таблицам (на уовне select и на уровне компонентов). И таки нашел пару забытых временных затычек, это стоило нам денег. Если проект должен без проблем работать на нескольких платформах и различных клиентах иного решения нет. Все остальное стоит гораздо дороже в итоге и по деньгам и по времени. И я с тим на все 100% согласен. Опыт неоднократно подтвердил правильность такого подхода. Опять же это позволяет гораздо лучше контроллировать те же зависимости, да и тестирование сильно упрощается.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003347
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvp.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу.
Каждый раз когда заходит вопрос о динамически собираемых запросах, kdv пишет "как это плохо".
Я эту позицию понимаю и в некой мере согласен, но хоть убей, не пойму как построить запрос сложного многокритериального отчёта без динамической сборки либо на сервере, либо на клиенте. Да, есть гасилочки вида (field = param or param is null), ну и всё. ЧЯДНТ, что у меня они в любом случае возникают?
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003349
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> Опыт неоднократно подтвердил правильность такого подхода.
Миша, а кой тебе годик?
Сколько ERP-систем тебе лично довелось проектировать?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003350
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoА зачем ?

PS а как наложить зависимости на запросы, выдаваемые приложением ?
если под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками.[/quote]Ну так они такие же объекты, как и таблицы - с зависимостями и прочем.
Т.е. я намекал (а теперь прямо указываю) на абсурдность этой хотелки
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003351
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Mikhail TchervonenkoИ походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет.
есть DECLARE VARIABLE с TYPE OF. Вы написали это в первом посте.
да, и использую, но и там же я писал что не хочется каждый раз создавать переменную только для того что бы создать зависимость (если эта переменная реально не используется). Потому неисполняемый блок выглядит разумнее.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003355
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm> как построить запрос сложного многокритериального отчёта
всё прогрессивное человечество (в том числе и M$), для OLAP таки используют
специально заточенные средства.
и только юные пионЭры упорно, из поколения в поколение, передают друг-другу
сакральные знания "как изобрести кривой велосипед с квадратными колёсами"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003356
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvp.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу.Тебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса".
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003358
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок.
Абсолютно 100%.
Ужоснах.Абсолютно нормальный и рабочий подход.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003362
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikhail TchervonenkoА вот когда эти строки формирует компонент на клиенте на основе
своих же свойств полей
....то он с лёгкостью может составить запрос типа
Код: sql
1.
select * from SP order by <эта самая строка>



я ж писал, что это не всегда сортировка выходного потока, иногда это сортировка промежуточного результата в SP
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003366
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad> Абсолютно нормальный и рабочий подход.
ты где-то случайно вляпался в ORM
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003370
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko(проект был на MSSQL + С#)
Ну так MS SQL это... как бы так сказать помягче... весьма своеобразная вещь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003373
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийafgm> как построить запрос сложного многокритериального отчёта
всё прогрессивное человечество (в том числе и M$), для OLAP таки используют
специально заточенные средства.

Виноват. Забыл упомянуть, что сборка запросов нужна не только только для отчётов... но и для фильтрации рабочих данных. И да, она бывает сложна.

В этой ситуации особенно радуют (правда) комменты Влада. И вообще в его подходе мне нравится то, что он ещё не потерял связь с прикладной разработкой реального мира.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003382
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийMikhail Tchervonenko> Опыт неоднократно подтвердил правильность такого подхода.
Миша, а кой тебе годик?
Сколько ERP-систем тебе лично довелось проектировать?

ты мне хочешь предложить работу? :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003387
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

да. Но Влад не формирует в этих ХП динамические запросы ибо знает чем это грозит.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003393
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> ты мне хочешь предложить работу? :)
хочу понять первопричину категоричности выдвигаемых постулатов:
то ли это опыт - сын ошибок трудных, то ли юношеский максимализм.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003402
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса".
на MUMPS я именно на таком предприятии и работал. Даже на двух. И еще с не MUMPS.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003415
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисда. Но Влад не формирует в этих ХП динамические запросы ибо знает чем это грозит.
Это он пусть сам скажет. Либо повезло, либо формирует на клиенте, либо он знает то, чего я бы тоже хотел знать.

PS: Пример. Поиск ошибок по куче параметров в трекере FB. Как это сделать адекватно без динамики, применимо к СУБД, я реально не знаю.
Да. Можно вывести всё на дашборд, запрограммированный заранее. А если таки настраиваемый?
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003423
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikhail Tchervonenko(проект был на MSSQL + С#)
Ну так MS SQL это... как бы так сказать помягче... весьма своеобразная вещь.

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

п.с. Вопрос, а кто на форуме из разработчиков FB? Спрашиваю не с целью их беспокоить, просто интересно почитать что писали.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003424
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmно хоть убей, не пойму как построить запрос сложного многокритериального отчёта без динамической сборки либо на сервере, либо на клиенте.
на клиенте - сколько угодно. и как минимум два проекта у нас было именно с динамической сборкой запросов на клиенте (клиент в т.ч. был трехзвенкой). в одном из них - сборка запроса по описанию в XML.
А в первом на динамические запросы я принудительно перевел разработчиков потому, что они поначалу нафигачили не менее 30-ти практически однотипных отчетных хранимых процедур. В то время никакого ES или EB в IB не было (а ФБ просто не было).

Так что я против динамической сборки именно на сервере. Собственно, есть разные варианты динамической сборки. Против where или order by ничего не имею. А вот все остальное - у нас два программера в MUMPS генерили динамический код (хранимые куски кода склеивались в зависимости от условий обработки и данных). Отлаживать и разбираться с этим было практически невозможно.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003429
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladАбсолютно нормальный и рабочий подход.
подтверждаю. у меня есть одна система, в которой "внешний интерфейс" - только процедуры. Но никакого динамического кода там нет.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003430
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийКоваленко Дмитрий> В крупных проектах должен быть человек (измученный нарзаном),
> который может сказать - "что это вы тут за херню наворотили" :)
"Любой русский программист, после пары минут чтения кода,
обязательно вскочит и произнесет, обращаясь к себе: переписать это все нафиг!" (с)


... надо будет как нибудь выбраться и напиться с тобой в кабаке :))
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003438
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко Дмитрий> ... надо будет как нибудь выбраться и напиться с тобой в кабаке :))
милости просим к нашему шалашу. :)
а уж тем более напиться, это мы завсегда готовы! :))
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003463
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

дык а что в MS SQL для динамических запросов в ХП есть зависимости? Насколько мне известно их там нет вовсе и для нединамических запросов в ХП. Хотя могу ошибаться.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003465
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийMikhail Tchervonenko> ты мне хочешь предложить работу? :)
хочу понять первопричину категоричности выдвигаемых постулатов:
то ли это опыт - сын ошибок трудных, то ли юношеский максимализм.

я не навязываю эти постулаты, каждый волен сам набивать шишки. Я, к сожалению, многие набил сам хоть и пытался читать книжки. Сейчас мне 47 (почти), в разработке с 21 года, по началу c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb. Первые коммерческие продукт выпустил в 26 лет, тогда он назывался Информ-Авто, база на визуальном фоксе которая обменивалась информацией по российскому авторынку, стояла практически в 70% автомагазинов по СНГ (те что ладами торговали). Потом работа на заказ, банковский софт, учет итп. Пришлось даже программы для мат расчетов писать по теме своего диссера. Потом Германия, тут повезло, сразу попал в боевую фирму по разработке софта для текстильщиков, потом другая фирма со своим it отделом, базы по туризму итп потом опять боевая фирма по разработке для клиентов в области медицины ну и сейчас большая контора - поставки элитных тряпок из европы со своим отделом IT.
Последние годы несколько крупных проектов точнее 6, успешных два, один загубленный, остальные умерли или еле теплятся по причине дальнейшей невостребованности (так бывает, сначала заказывают а потом сами разоряются, уходят на тругой рынок находят лучший продукт итп). Мелкие проекты посчитать не берусь. Из того что в онлайне можно глянуть только это , ну и несколько мелких поделок для себя тут . Вот ещё, фотографией увлекаюсь :).
надеюсь тему раскрыл, мой ник моё реальное имя и фамилия, я не скрываюсь потому гугл в помощь ;)
теперь твоя очередь ...
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003472
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouTube Video
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003480
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, все видео воткнулось, извиняюсь
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003486
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> Сейчас мне 47 (почти), в разработке с 21 года, по началу
> c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb.
не, я тебя на работу не возьму. распыляешься. толком не владеешь ни одним из.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003493
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийКоваленко Дмитрий> ... надо будет как нибудь выбраться и напиться с тобой в кабаке :))
милости просим к нашему шалашу. :)
а уж тем более напиться, это мы завсегда готовы! :))

ну, будете у нас на колыме тоже заглядывайте, могу по местным кабачкам экскурсию устроить ;)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003496
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийMikhail Tchervonenko> Сейчас мне 47 (почти), в разработке с 21 года, по началу
> c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb.
не, я тебя на работу не возьму. распыляешься. толком не владеешь ни одним из.

ну это ж в периоде 26 лет все. Кто чем не увлекался :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003504
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> ну это ж в периоде 26 лет все. Кто чем не увлекался :)
не воспринимай всерьёз.
я в жизни вполне доброжелательный эпикуреец.
и только на форуме мрачный мизантроп и зануда!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003512
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,

дык а что в MS SQL для динамических запросов в ХП есть зависимости? Насколько мне известно их там нет вовсе и для нединамических запросов в ХП. Хотя могу ошибаться.
да, на тот момент когда я на нем кодил было кисло
вот , кстати продукт отчасти решающий эту проблему (краткое описание тут ) есть ещё для оракла такая весч
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003513
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийhvlad> Абсолютно нормальный и рабочий подход.
ты где-то случайно вляпался в ORMНи в коем случае. Я эти три буквы (в этом порядке) сам не переношу :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003516
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvhvladТебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса".
на MUMPS я именно на таком предприятии и работал. Даже на двух. И еще с не MUMPS.Сколько лет назад это было ? То-то же, вычёркиваем :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003520
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladСколько лет назад это было ? То-то же, вычёркиваем :)
не вычеркиваем. могу поименно перечислить, кто чем занимался, и кто какой код писал.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003522
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

забыл добавить, SQL Dynamite и с FB вроде могёт (я правда не пробовал, у меня IBExpert купленный).
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003527
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

давай договоримся об итак очевидном - не стоит навязывать свои подходы\привычки и т.п. всему миру да ещё и в категоричной форме.
Ибо твой (и мой и вообще любой) опыт не универсален и может быть не применим в чужих условиях.

Я, например, считаю, что плюсы подхода "клиентам - только процедуры и никакого доступа на таблицы" на много порядков перевешивают
минусы этого подхода. Но только в определённом ряде приложений - всякие ERP, автоматизации учёта на предприятиях и т.п. И это есть
результат более чем 15-летнего опыта работы прикладным SQL программистом. И опыта общения с разработчиками подобного ПО.
А вот как оно в вебе, например, меня вообще не интересует.

Теперь про ES. У каждого инструмента есть своё назначение, плюсы и минусы, особенности применения.
Из того, что инструмент может быть опасен\вреден в некоторых ситуациях, не стоит раздувать его тотальное
порицание и запрет на использование.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003529
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoВопрос, а кто на форуме из разработчиков FB?hvlad и dimitr
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003542
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТак что я против динамической сборки именно на сервере
У программистов c БД бывает 3 условные стадии (не везде, не всегда, не у всех, но общая картина, часто наблюдаемая, такова):
1. Мы пишем на Делфи и БД - это хранилище
2. А на хранимках можно писать быстрее.
3. Мы выросли и сложность логики такова, что процедурки уже не тянут (а там уже и реальное третье звено, ORM, паттерны, тестирование и т.д. да, да.... всего этого может не быть на этапе 2)

Причины перехода и выбора могут немного отличаться, но в общем так.
Так вот у некоторых (коих ИМХО не так мало), процедурная разработка и есть так трёхзвенка, с той лишь разницей, что центральное звено в БД, что крайне удобно (и данные рядом, и отдельное звено не надо админить). Не без минусов решение, но ещё один важный плюс - переход с п.1 на п.2 можно осуществлять постепенно, потому как часто приходишь на системы историей, и не всегда можно построить мир с нуля. Да и на процедурках можно прожить всю жизнь и не знать проблем.
Это я тому, что коли логика наш "мозг" в процедурах, то и сборка туда же просится, чтобы не размазывать.

kdvСобственно, есть разные варианты динамической сборки. Против where или order by ничего не имею.
Так речь и идёт про where и order by.
Иногда (не часто) по условию исключаются таблицы, т.к. оптимизатор не всегда адекватно воспринимал таблицу "для галочки".
Ну ладно. DDL тоже бывает :)
А бывает он именно потому, что на T-SQL в MSSQL я могу написать скрипт, который окопается, проверит всё, что надо проалтерит, и почти полностью всю работу по накату новой БД сделает. Что в FB проблематично, в силу известных особенностей работы скриптов (транзакции рулятся из выполнятора скриптов, DDL низя в PSQL без ES). Но это уже немного в сторону от темы.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003543
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

ты пере-это-самое.

я написал, что вот это мнение - ошибочно

Mikhail Tchervonenkoто в идеале он вообще не должен работать с таблицами на прямую, только с хранимками.

при этом также написал, что одну из систем я делал именно так - с интерфейсом на хранимых процедурах.
Противоречий тут не вижу, потому что я выступил
а) против идеализации определенного решения
б) против излишнего увлечения динамическим кодом (ES в SP и триггерах).

Собственно, и все.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003548
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТеперь про ES. У каждого инструмента есть своё назначение, плюсы и минусы, особенности применения.


Hо не пиши на Коболе, если можешь этого избежать. (c)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003560
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvты пере-это-самое.Ок, закончим на этом
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003580
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Hvlad!
You wrote on 9 июля 2015 г. 15:01:26:

Hvlad> Я, например, считаю, что плюсы подхода "клиентам - только процедуры и никакого доступа на таблицы"
> на много порядков перевешивают минусы этого подхода.
это всего лишь одна из парадигм.
имеет право на существование.
но не более.
французы жрут садовых улиток и полагают это нормальным.
нам же - сало подавай! ;)

наши местные ораклисты довели данный подход до абсурда.
более полусотни пакетов с процедурами/функциями "на все случаи жизни".
даже для каждого тупого select * from SomeTable создаётся процедура,
на каждый чих, потом поверх неё ещё и генерится промежуточный слой АПИ.
функционал в хреновой туче мест тупо дублируется,
ибо никто не озадачивается документированием этого кодо-могильника.
и если кто-то скажет, что ЭТО удобно сопровождать, убью из рогатки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003584
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoSQL Dynamite и с FB вроде могёт.
Ни в коем разе не хвастаюсь, но моё поделие с быдлопарсингом даёт профит в разы больше чем динамит, когда я его смотрел. Хотя бы потому, что есть зависимости Delphi -> SQL. Причём разбирает русские (да-да) имена из DFM. Даёт иногда лишние связи, но это ерунда. Всё это для Delphi + MSSQL, но работает на FB. Поддержку FB не развиваю, т.к. нет острой необходимости.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003611
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийэто всего лишь одна из парадигм.
имеет право на существование.
но не более.Есс-но. Но ведь не "ужас-ужас" (c) :)

Мимопроходящийнаши местные ораклисты довели данный подход до абсурда.Это не значит, что подход плохой :)

Мимопроходящийи если кто-то скажет, что ЭТО удобно сопровождать, убью из рогатки.Нет, гораздо удобнее ковырять исходники 100500 прикладных программулечек в поисках ссылок на таблицу, поле которой нужно удалить или изменить тип и т.д. Ещё примеров дать ? :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003624
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийместные ораклисты довели данный подход до абсурда.
более полусотни пакетов с процедурами/функциями "на все случаи жизни".
даже для каждого тупого select * from SomeTable создаётся процедура

А если ещё и учесть, что курсоры из процедуры в Оракуле возвращаются сугубо через задницу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003629
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Hvlad!
You wrote on 9 июля 2015 г. 15:36:25:

Hvlad> в поисках ссылок на таблицу, поле которой нужно удалить или изменить тип и т.д.
"рефакторинг тм как норма жизни" - нужно выжигать калёным железом!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003631
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНо ведь не "ужас-ужас" (c) :)
Пока движок не научится проталкивать внутрь ХП условия выборки и сортировку, так "ужас-ужас".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003638
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovhvladНо ведь не "ужас-ужас" (c) :)
Пока движок не научится проталкивать внутрь ХП условия выборки и сортировку, так "ужас-ужас".Жевать, Дима, жевать !
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003674
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladMikhail TchervonenkoЧем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимостиЗависимости кого от чего ? Динамический запрос по своей сути неизвестен заранее и не предсказуем.
потому и предлагаю создать оператор создания зависимости
типа:
Код: sql
1.
2.
3.
4.
5.
6.
DEPENDENCE TO имя_таблицы1,имя_таблицы2 .....;
или 
DEPENDENCE TO имя_таблицы1.имя_поля1,имя_таблицы2.имя_поля2,....;
или
DEPENDENCE TO :переменная_с_именами_полей;
итп


прописать сие удавольствие перед execute statement
и по мере надобности править
это конечно не решит проблему кривых рук пихающих в текст запроса что попало
но по крайней мере позволит хоть как то навести порядок и незабыть вернуться к этому месту в случае правок в структуре таблиц
или к примеру так:
Код: sql
1.
execute statement ...... dependences имя_таблицы1.имя_поля1,имя_таблицы2.имя_поля2,....;


тоже на мой испорченный неплохо т.к. только в случае execute statement и необходимо
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003679
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Mikhail Tchervonenko!
You wrote on 9 июля 2015 г. 16:08:15:

Mikhail Tchervonenko> прописать сие удавольствие перед execute statement
> и по мере надобности править
дык и без модификации движка сервера это можно сделать.
заведи себе табличку под это "удавольствие".
и всего то делов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003688
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Mikhail Tchervonenko!
You wrote on 9 июля 2015 г. 16:08:15:

Mikhail Tchervonenko> прописать сие удавольствие перед execute statement
> и по мере надобности править
дык и без модификации движка сервера это можно сделать.
заведи себе табличку под это "удавольствие".
и всего то делов.

оно понятно что обойти можно, хочется красоты,
хотя само execute statement уже подразумевает её отсутствие ...
но когда деваться некуда сие спасло бы отца Русской демократии в его потугах достич нирваны :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003689
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

я тебе этим оператором такой порядок наведу что мало не покажется. Сделаю какую нибудь тупую процедуру ничего не делающую и прицеплю к ней все объекты метаданных. Мало того. Раз есть оператор создающий зависимость значит должен быть и оператор её удаляющий. Ну тогда можно тупо у процедур не имеющих execute statement отнимать абсолютно легальные зависимости.


Короче в сад.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003708
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,

я тебе этим оператором такой порядок наведу что мало не покажется. Сделаю какую нибудь тупую процедуру ничего не делающую и прицеплю к ней все объекты метаданных. Мало того. Раз есть оператор создающий зависимость значит должен быть и оператор её удаляющий. Ну тогда можно тупо у процедур не имеющих execute statement отнимать абсолютно легальные зависимости.


Короче в сад.

наличие select в прцедуре создаёт зависимость и не требует оператора удаления зависимости если этот select из процедуры удаляется.
Почему в предложенном выше синтаксисе такой оператор вдруг должен появляться?
убрал из процедуры объявление зависимости, зависимость пропала.
Не оч. понимаю Вашу логику.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003713
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoпотому и предлагаю создать оператор создания зависимости...
Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003716
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Afgm!
You wrote on 9 июля 2015 г. 16:32:50:

Afgm> Нафиг-нафиг. :)
ну вот мы и достигли консенсуса
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003717
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmMikhail Tchervonenkoпотому и предлагаю создать оператор создания зависимости...
Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :)
я бы сказал иначе, плохой мир лучше хорошей войны
так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт
По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003718
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийAfgm> Нафиг-нафиг. :)
ну вот мы и достигли консенсуса


... а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали... В общем в тему я так и не вьехал
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003721
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterМимопроходящийпропущено...

ну вот мы и достигли консенсуса


... а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали... В общем в тему я так и не вьехал
это просто тут много букафф и пива захотелось чтой то ....
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003723
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Darkmaster!
You wrote on 9 июля 2015 г. 16:37:26:

Darkmaster.. а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали...
и все были молодыми, кудрявыми, стройными, двухметроворостыми...

а нынче старые, лысые, пузатые пеньки трухлявые!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003725
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoafgmпропущено...

Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :)
я бы сказал иначе, плохой мир лучше хорошей войны
так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт
По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать
Я не говорю, что это хорошо, но давайте будем посмотреть вокруг.
T-SQL, PHP, Python ... Пока не запустишь - не узнаешь ничего о работоспособнеос
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003740
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

случайно отправил.

Пока не запустишь - не узнаешь ничего о работоспособности.
Следовательно Тесты!
Я понимаю желание сохранить всепоглощающий контроль зависимостей в FB. Он и польза и зло в одном лице. Но видимо тот случай, когда теги зависимостей это уже перегиб.
С другой стороны если собирать скрипты через linq-flow-подобный интерфейс, то можно делать это поэтапно и проследить зависимости.
Есть у данного подхода много минусов: и не всякий запрос можно написать, и не везде есть такая магия, и ещё всё это вне БД и т.д.
Надеюсь развитие СУБД и технологий распределения-хранения-обработки данных со временем станет прозрачнее, и гонять данные между потоками <-> кластером <-> БД будет относительно просто и прозрачно. Но это вероятно нескоро, уж больно велик уровень слоёв абстракций у этой луковицы технологий. </поток сознания>
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003755
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmMikhail Tchervonenkoпропущено...

я бы сказал иначе, плохой мир лучше хорошей войны
так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт
По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать
Я не говорю, что это хорошо, но давайте будем посмотреть вокруг.
T-SQL, PHP, Python ... Пока не запустишь - не узнаешь ничего о работоспособнеос

ну да, но FB ж лучшеж всех должен быть :) хотелось бы пораньше узнавать некоторые проблемы.

п.с. кстати, никто не проверял, если определять переменную с type of column но не инициализировать её, зависимость создастся или нет, может компилятор тупо её выкидывает в таком случае? если нет, то по идее, память она должна начинать отжирать только в момент нициализации или это происходит уже при декларировании? (иначе нафига декларирование всегда надо в начале процедуры писать). По идее это определяющий фактор для выбора: использовать не исполняемый кусок кода или пустые переменные. С переменными было бы короче если не надо инициализировать.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003760
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmafgm,

случайно отправил.

Пока не запустишь - не узнаешь ничего о работоспособности.
Следовательно Тесты!
Я понимаю желание сохранить всепоглощающий контроль зависимостей в FB. Он и польза и зло в одном лице. Но видимо тот случай, когда теги зависимостей это уже перегиб.
С другой стороны если собирать скрипты через linq-flow-подобный интерфейс, то можно делать это поэтапно и проследить зависимости.
Есть у данного подхода много минусов: и не всякий запрос можно написать, и не везде есть такая магия, и ещё всё это вне БД и т.д.
Надеюсь развитие СУБД и технологий распределения-хранения-обработки данных со временем станет прозрачнее, и гонять данные между потоками <-> кластером <-> БД будет относительно просто и прозрачно. Но это вероятно нескоро, уж больно велик уровень слоёв абстракций у этой луковицы технологий. </поток сознания>

эххх, тесты
видели бы Вы глаза начальников которым говориш что тестирование тоже требует написания кода, времени и соотв. денег. Все говорят о тестах а на практике мало ими пользуются. Сколько контор перевидел, одна из десятка пишет тесты. В основном сидят девочки и тупо лазят по программе, в лучшем случае использую какой то план тестирования и ставят отметки что это проверено. И это в Европе, что творится в Азии, индии или СНГ приходится только предполагать. Опыт показывает что 100% покрытие тестами скорее исключение нежели правило.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003793
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoОпыт показывает что 100% покрытие тестами скорее исключение нежели правило.
100%... У меня чуть все кости в теле не треснули от натуги :)
Основной - деньгосчитающий функционал из прикладной, и ядро фреймворка (своих либ) из общей логики уже хорошо.
Всё завит от реалий, но да, часто работа в не-IT-профильных конторах это "Пиши код, ...ть!!!"
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003797
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmMikhail TchervonenkoОпыт показывает что 100% покрытие тестами скорее исключение нежели правило.
100%... У меня чуть все кости в теле не треснули от натуги :)
Основной - деньгосчитающий функционал из прикладной, и ядро фреймворка (своих либ) из общей логики уже хорошо.
Всё завит от реалий, но да, часто работа в не-IT-профильных конторах это "Пиши код, ...ть!!!"
да и в профильных тоже не все в порядке, поверьте, был там ...
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003804
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoafgmafgm,

случайно отправил.

Пока не запустишь - не узнаешь ничего о работоспособности.
Следовательно Тесты!

эххх, тесты
видели бы Вы глаза начальников которым говориш что тестирование тоже требует написания кода, времени и соотв. денег. Все говорят о тестах а на практике мало ими пользуются. Сколько контор перевидел, одна из десятка пишет тесты.
Из свежего.
RSDNОбсуждение автоматизации тестирования в кулуарах любой конференции — как треп студентов-первокурсников о сексуальном опыте.

Несколько человек действительно попробовали и им понравилось, кто-то видел в интернете как автоматизируют другие, кому-то рассказали старшекурсники, но большинство до сих пор тестирует руками без перспективы автоматизации в ближайшие несколько лет.
Отсюда.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003821
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко Дмитрий,

кстати, раз зашёл, вот IBProvider судя по статьям да - это тесты. Но без этого никак. SQLite Well-commented source code with 100% branch test coverage. И много кто ещё. Это системный (не надо придираться к термину) софт.

А по поводу внедрения чего-либо у прикладника, то тут можно только процитировать: "Лучше сделать и просить прощения, чем вечно пытаться выпросить время на рефаторинг/тесты/..."
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003862
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmSQLite Well-commented source code with 100% branch test coverage.
То есть в SQLite в принципе невозможно найти баг, поскольку они все отловлены ещё на этапе
тестирования?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003886
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmКоваленко Дмитрий,

кстати, раз зашёл, вот IBProvider судя по статьям да - это тесты. Но без этого никак. SQLite Well-commented source code with 100% branch test coverage. И много кто ещё. Это системный (не надо придираться к термину) софт.

А по поводу внедрения чего-либо у прикладника, то тут можно только процитировать: "Лучше сделать и просить прощения, чем вечно пытаться выпросить время на рефаторинг/тесты/..."
Часто софт пишется дабы по быстрому получить деньги, что будет потом интересует не очень и будующие ошибки даже приветствуются. Я бы сказал даже таких случаев большинство, по крайней мере мне попадалось. Ситуация обычно такая, напишите нам а поддерживать будет наш мальчик. Потому для фирмы основная заработанная сумма это период написания. Вероятность того что будет поддержка не очень высока. Потому в код закладывается необходимость в будующем что бы к вам обратились. Это может быть ошибка или что то что с изменением даты происходит. (напр. в отчете вписывается фиксированная дата или что то подобное). И если потом возникнут проблемы это хорошо, т.к. в договоре не написано что код не может содержать ошибок, а правка это деньги. Вот такая реальность. На фоне всего этого тесты как бы важны не очень. А вот если в конторе свой it отдел который сам все пишет ситуация меняется, хочется писать так, что б потом не дёргали. Потому всегда говорил, свой хороший спец, а лучше несколько, в итоге будет дешевле чем услуги сторонней конторы. Речь понятно о единичных и не маленьких продуктах. В коробочных заложена другая логика.

п.с. если спец не заинтересован материально в качественном продукте и ему не дано достаточно времени на разработку, качества не жди. а так можно и 10 шапок сшить, но маленьких.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003975
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТо есть в SQLite в принципе невозможно найти баг, поскольку они все отловлены ещё на этапе
тестирования?
Да нет конечно. Это означает ровно то, что написано и не более.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003980
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmЭто означает ровно то, что написано и не более.
Если написано "тестами покрыт каждый вариант исполнения кода", то как ещё это можно
понимать, кроме как "работа была проверена в абсолютно любой возможной ситуации"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003982
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

да бред там написан. Нет конечно можно покрыть тестами все вызовы функций. А вот все варианты описать вряд ли. Ибо подсознательно сочиняющий тесты всегда смотрит на них так. Вот я даю такой результат, на выходе должен быть такой (обычно положительный) результат. А на деле выходит по другому. Поэтому баги всё равно находят. А тесты для багов уже делают по факту его исправления.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39003999
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovafgmЭто означает ровно то, что написано и не более.
Если написано "тестами покрыт каждый вариант исполнения кода", то как ещё это можно
понимать, кроме как "работа была проверена в абсолютно любой возможной ситуации"?..

Я не знаток английского, но дословно "покрыто 100% всех ветвлений кода". Криво с точи зрения русского языка, но яснее по сути.
И даже если взять твой вариант перевода, то как одно вытекает из другого?
Покрытие всеx веток, не означает покрытия всех комбинаций. У многих ошибок есть накопительный эффект.
Зная тебя как не глупого человека, могу воспринимать вопрос как троллинг? :)
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39004006
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmПокрытие всеx веток, не означает покрытия всех комбинаций.
Нууууу.... Это как-то слишком сложно для моего понимания.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39011435
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovafgmПокрытие всеx веток, не означает покрытия всех комбинаций.
Нууууу.... Это как-то слишком сложно для моего понимания.


это типа
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure DoSmth(Param1, Param2: Byte);
var
  Err: Integer;
  ErrTexts: array[0..1] of string = ('No error', 'Parameter is zero');
...
Err := 0;
if Param1 = 0 then
  Inc(Err);
if Param2 = 0 then
  Inc(Err);
Log(ErrTexts[Err]);
...



И три теста: DoSmth(1, 1), DoSmth(0, 1) и DoSmth(1, 0). Покрыты все ветки, но на DoSmth(0, 0) наступит бо-бо.

Кроме того, 100% покрытие не спасет от ситуаций, которые изначально не предусмотрены в коде
Код: pascal
1.
MsgBox(Arr[1]);


- в случае пустого Arr опять же бо-бо, а покрытие 100%.
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39011467
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Плохому учишь Для DoSmth(1,1)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure DoSmth(Param1, Param2: Byte);
var
  Err: Integer;
  ErrTexts: array[0..1] of string = ('No error', 'Parameter is zero');
...
Err := 0;
if Param1 = 0 then
  Inc(Err);                 // 1
if Param2 = 0 then
  Inc(Err);                 // 2
Log(ErrTexts[Err]);     // Exception:  INDEX OUT OF BOUNDS... 
...





уже бо-бо.....
...
Рейтинг: 0 / 0
Создание зависимостей на поля и таблицы входящие в execute statement
    #39011479
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster, еще не проснулся после выходных? ))
...
Рейтинг: 0 / 0
101 сообщений из 101, показаны все 5 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание зависимостей на поля и таблицы входящие в execute statement
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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