powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
25 сообщений из 144, страница 4 из 6
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242614
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar,

Можно на "ты".
Мои сообщения пишет робот-секретарь. А я только нажимаю "Опубликовать"
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242615
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarкороче надо дать вам 100 000 баксов и вы за пару дней сделаете репликацию
базы с 300 таблицами, 800 процедурами, при этом гарантируете ее правильную работу и
отсутствие каких-либо глюков - чтобы было точно известно - любой глюк от новой версии
сервера, а не от сбацаной наспех репликации..
Зачем "от сбацанной наспех"? Гораздо дешевле чем 100 килобаксов берётся всем известный
готовый репликатор, проверенный десятилетиями эксплуатации у сотен пользователей, читается
документация к нему, изучается схема БД по имеющейся (не правда ли?) у ней документации
и... всё, супермаркет. В простейшем случае (все таблицы имеют ПК, нет хранимых агрегатов,
каскадных ФК и хитровывернутой логики приложения) собственно настройка репликации занимает
менее пяти минут. В противном случае основное время уходит как раз на чтение документации
и выявление всякой фигни в БД. Что, впрочем, практически не затрагивает работу пользователей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242618
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как называется всем известный готовый репликатор?
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242621
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да простят меня модераторы...
EugeneBarКак называется всем известный готовый репликатор?
IBPhoenix Replicator.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242628
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЯ проверил на 1.5 и с удивлением обнаружил, что он тоже дает это сделать.

а что, InterBase не дает такого сделать? ты перескакиваешь с темы на тему. Инвалидация процедур в каком-то виде разве что в ФБ 3 сделана.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242635
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

инвалидация процедур была и в 2.5. Поле RDB$VALID_BLR в RDB$PROCEDURES и RDB$TRIGGERS. Отлавливает далеко не все случаи.
В 3.0 просто появились пакеты и там оно более явно проявляется когда инвалидом становится целый пакет процедур и функций.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242643
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

я просто не понял, почему EugeneBar вдруг с удивлением узнал про "в ФБ 1.5 было так же", если эта бодяга тянется очень давно, исходно в ИБ, и следственно в ФБ, и только в ФБ 2.5 ее хоть как-то начали исправлять.
http://www.ibase.ru/db_repair/#Процедуры и триггеры
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242651
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarYuRock , не подаю.

(ирония)
Dimitry Sibiryakov, короче надо дать вам 100 000 баксов То вы жмотитеь на 100 баксов, то готовы дать 100 000. Такое ощущение, что у вас нет ни того, ни другого
/ирония/
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242688
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarОчевидно, что ты не пишешь даже минимально не то что сложных - а просто объемных процедур. Если бы писал - привык бы не забывать. Так как там много чего можно забыть.

Вполне допускаю, что твоё субъективное суждение о сложности и объемности чужих SP построено относительно твоего личного опыта их написания и хранимая процедура в более чем 300 строк кода, предназначенная для внесение изменений в значения членов объекта динамической ORM системы, для тебя такой сущий пустяк, что ты даже не запариваешься отладкой подобных пустяков, а сразу, по привычке, пишешь начисто и без ошибок. Допускаю... Но, заметь, при написании без использования CASE средств нескольких десятков тысяч строк sql скрипта, содержащего, помимо прочего, создание и пересоздание доброй сотни хранимых процедур, в которых, также, встречаются процедуры с рекурсивным вызовом, у меня не возникло такой дурацкой претензии по поводу SUSPEND, как та, что ты изрыгнул на полях данного форума.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242805
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, сейчас проверил - в IB 7 тоже дает. Возможно, в IB 4 не давала и с тех пор запомнилось. Может и там не было. Точно уже не скажу. Видимо, я слишком привык так никогда не делать и аккуратно отлавливать все зависимости.

rdb_dev, пересоздавать все процедуры в базе из-за изменения одной - это глупо. Тут, конечно, не до решения сложных задач, т. к. ты сложность сам себе создаешь на пустом месте из ничего. Хз, как ты до этого додумался, может с какого-нибудь MS SQL перенял или с какого-нибудь убогого php-программирования.

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

Конечно, и ошибки и отладки и поиск в чужом коде трудно отлавливающихся багов, возникающего порой из-за одного неверное написанного символа. Забытый suspend в простой процедуре обнаруживается сразу и исправляется сразу. Ни от чего этот запрет не спасает, зато добавляет проблем.

--

Кстати, если процедура вызывается через execute procedure, туда в FB 2.5 можно suspend вставлять или нет?
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242810
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev, насчет того, что у тебя возникло и что не возникло. Я вижу в твоих рассуждениях неспособность к абстрактному мышлению. "У меня возникло, у тебя не возникло, мне нравится, тебе не нравится". Отрешится от "я" и "ты" ты не в состоянии. Поэтому разговаривать с тобой это как пытаться объяснить слепому цвет. Собственно, как слепой ты понимаешь только два вида разговора - нерассуждающего принятие чужого безапелляционного мнения и такое же навязывание своего. Второе, конечно неправильно, так что тебе следует просто молча слушать.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242828
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarКстати, если процедура вызывается через execute procedure, туда в FB 2.5 можно suspend вставлять или нет?


можно
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242863
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarКстати, если процедура вызывается через execute procedure, туда в FB 2.5 можно suspend вставлять или нет?
EugeneBarПоэтому разговаривать с тобой это как пытаться объяснить слепому цвет. Собственно, как слепой ты понимаешь только два вида разговора - нерассуждающего принятие чужого безапелляционного мнения и такое же навязывание своего. Второе, конечно неправильно, так что тебе следует просто молча слушать.
Если ты элементарно не в состоянии прочесть официальное РУССКОЕ Руководство по языку SQL СУБД Firebird и начинаешь пузырить тут соплями, растопыривать пальцы и доказывать всем, что ты единственный, неповторимый и самый умный Д'Артаньян, а все вокруг тебя 3,1415... и что только твоё мнение самое правильное и безапелляционное, то я, конечно, не буду пытаться доказывать тебе обратное и рекомендовать именно тебе молча слушать, так как это равносильно метанию бисера перед (сам знаешь кем). Посоветую лишь пересмотреть на досуге старый советский мультипликационный фильм "Самый, самый, самый", который ты, по всей видимости, ни разу не смотрел.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242880
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисEugeneBarКстати, если процедура вызывается через execute procedure, туда в FB 2.5 можно suspend вставлять или нет?
можно
но если их несколько, то сработает только первый, до остальных управление никогда не дойдет
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242885
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

кстати про запрет на отсутствие SUSPEND в селективных ХП. Для PSQL функций отсутствие RETURN почему-то считается нормальным.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242894
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Адриано не доглядел, наверно. Когда юзеры начнут техподдержку мучить по этому поводу, добавят :).
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242899
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денискстати про запрет на отсутствие SUSPEND в селективных ХП. Для PSQL функций отсутствие RETURN почему-то считается нормальным.
с функциями все прямолинейно. Если бы процедуры вызывались только через execute, для них бы тоже ничего не городили.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39243420
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev, у тебя мозгов нет, не говори ничего.

Адриано не доглядел, наверно. Когда юзеры начнут техподдержку мучить по этому поводу, добавят :).

Не надо одним маразмом порождать другой.
Модератор: Назначаю успокоительные процедуры. Начнём с непродолжительных.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39243436
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar,

в каких случаях функция не должна ничего возвращать? Заметь это не C написать что-то типа
Код: sql
1.
2.
CREATE FUNCTION MyFunc(AParam INT) RETURNS VOID
....


не выйдет. Для таких случаев у нас процедуры есть.

Функция без RETURN это конечно не ошибка, но как минимум WARNING не помешал бы, как это делают компиляторы в других языках программирования.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244387
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, возможно, хотя в Дельфи в итоге пришли к объединению синтаксиса функций и процедур.

Однако, IMHO важнее сделать какую-то проверку на некорректный вызов хранимых процедур, если ее нет. Хотя бы как ключ gfix или псевдо-команду sql. Чтобы выдавало список некоректных процедур.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244389
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой ключ gfix или псевдо-команда sql, чувак?
Это делается элементарным EB/IBE-блоком.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244411
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведи пример такого блока, чувак. И еще - его желательно в faq добавить.

Кроме того мало ли что можно было сделать sql-командами. Можно и типы полей менять, и пользователей добавлять update-м системных таблиц (по крайней мере в старых версиях). Однако sql-инструкции для этого добавили.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244430
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar> Приведи пример такого блока, чувак.

Гы... А шнурки тебе не завязать, чувак?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
execute block
as
    declare variable n varchar(100) = '';
    declare variable cnt int = 0;
begin
    sp = '';
    for select RDB$PROCEDURE_NAME
        from rdb$procedures p
        into n do
    begin
        select count(*)
        from rdb$procedure_parameters pp
        where pp.rdb$procedure_name = :n and pp.rdb$parameter_type = 0
        into cnt;
        if (ctn > 0) then
        begin
            -- ставишь сnt NULL-ов через запятую и скобки
        end

        begin
            execute statement 'select 1 from ' || n;
            when ANY do
                EXCEPTION PREVED_MEDVED / SUSPEND / LOG_ERROR;
        end
    end
end



Доводи до ума, проверяй и отлаживай сам.

> И еще - его желательно в faq добавить.

Зачем? В FAQ-е на каждую фигню, пришедшую в голову,
готовый ответ скрипт должен быть? В "полезные запросы"
можно добавить, да.

> Однако sql-инструкции для этого добавили.

sql-инструкции для чего? Для "найдите мне
неселектабельные процедуры в моей же БД"?
Кстати, ты в какой-нибудь другой СУБД
(менее нехорошей, чем FB) такое встречал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244437
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Код: sql
1.
2.
            execute statement 'select 1 from ' || n;
            when ANY do



Если исходный текст не потерт - не обязательно выполнять - можно проверить наличие SUSPEND в RDB$PROCEDURE_SOURCE...

Гаджимурадов Рустамsql-инструкции для чего? Для "найдите мне
неселектабельные процедуры в моей же БД"?


Чего уж там - если дать в руки стеклянный ... шар - и шар побьет и руки порежет...
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39244449
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster> Если исходный текст не потерт

Согласен, можно, если не потёрт.
Но в таком случае и EB городить смысла нет -
обычного select where containing 'suspend' хватит.

> и шар побьет и руки порежет...

Не, проглотит, как пить дать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 144, страница 4 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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