Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
Ранее использовался Firebird, теперь подбираю замену. Подскажите пожалуйста SQL сервер, который позволяет выполнить процедуру на клиенте без предварительного размещения ее в базе данных. Наподобие EXECUTE BLOCK в Firebird.

+
execute block (date0 date=:date0, date1 date=:date1, id_gr_prod int=:id_gr_prod, k_type_ed_izm smallint=:k_type_ed_izm)
returns (N_PROD varchar(60), SALDO_0 numeric(18,2), PROIZV numeric(18,2), KORR numeric(18,2), REALIZ numeric(18,2), SALDO_1 numeric(18,2))
as
 declare id_prod int;
 declare emk_but numeric(4,2);
begin
 for
 select ID_PROD, SP.N_PROD, sum(SALDO_0) SALDO_0, sum(PROIZV) PROIZV, sum(KORR) KORR, sum(REALIZ) REALIZ
 from
 (
....
end
23 фев 16, 10:10    [18852959]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7000
EXECUTE BLOCK в Firebird никогда не выполнялся на клиенте. Это просто PSQL-код, не требующий создания хранимой процедуры. Выполняется он естественно на сервере.
23 фев 16, 10:14    [18852967]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
dimitr, спасибо за уточнение. Вопрос в силе.
23 фев 16, 10:28    [18852988]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Sergey Orlov
Member

Откуда: СПб
Сообщений: 4508
никогда не понимал программистов, которые в клиенте делали еще что-то, кроме отображение и ввода данных...
23 фев 16, 11:47    [18853165]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
Sergey Orlov
никогда не понимал программистов, которые в клиенте делали еще что-то, кроме отображение и ввода данных...

Ну в Firebird это необходимость - потому как если процедуры хранить в БД - то ты не сможешь обновить структуру таблиц БД при помощи ALTER TABLE. Есть в Firebird такая фича (разработчики ее называют преимуществом перед другими SQL серверами) - в общем перед изменением столбца в таблице (это не только изменение его имени) нужно удалить все процедуры и триггеры, которые ссылаются на это поле - иначе ALTER TABLE COLUMN даст ошибку. Причем удалять и восстанавливать все процедуры и триггеры нужно в определенной последовательности - т.к. там тоже есть контроль зависимости. В общем вместо одной строки с ALTER TABLE приходится в скрипт добавлять сотни строк с удалением и восстановлением всех текстов процедур и триггеров, а это это гемор - поэтому все и хранят процедуры на клиенте.

Но и часто есть просто необходимость выполнить процедуру всего один раз - зачем ее в таком случае помещать на сервер?
Так что я считаю что такой механизм нужен на любом серваке.
23 фев 16, 12:24    [18853297]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7000
Микола Питерский
поэтому все и хранят процедуры на клиенте

это ты такой уникальный
23 фев 16, 12:55    [18853405]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Микола Питерский
Наподобие EXECUTE BLOCK в Firebird.

Если нужен EXECUTE BLOCK, так и пользуйся EXECUTE BLOCK, в чём проблема-то?

Posted via ActualForum NNTP Server 1.5

23 фев 16, 13:43    [18853582]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
Dimitry Sibiryakov
Если нужен EXECUTE BLOCK, так и пользуйся EXECUTE BLOCK, в чём проблема-то?


Так проблема в самом Firebird. Из за его оригинальной идеи "ссылочной целостности метаданных" использовать его невозможно.

Ищу замену на другой сервак - единственное требование - наличие механизма похожего на EXECUTE BLOCK для использования в единичных случаях.
23 фев 16, 13:57    [18853624]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Микола Питерский
Из за его оригинальной идеи "ссылочной целостности метаданных"
использовать его невозможно.
Ищу замену на другой сервак - единственное требование - наличие механизма похожего на
EXECUTE BLOCK для использования в единичных случаях.

Тогда бери MS SQL или Oracle - они с целостностью БД особо не заморачиваются.

Posted via ActualForum NNTP Server 1.5

23 фев 16, 14:04    [18853642]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
Dimitry Sibiryakov
Тогда бери MS SQL или Oracle - они с целостностью БД особо не заморачиваются.


А как там механизм EXECUTE BLOCK называется? Что-то я никак не найду.
23 фев 16, 14:19    [18853676]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Микола Питерский
Что-то я никак не найду.

А по каким ключевым словам ты его ищешь?..
RTFM batch и PL/SQL block.

Posted via ActualForum NNTP Server 1.5

23 фев 16, 14:24    [18853692]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Микола Питерский
Так проблема в самом Firebird. Из за его оригинальной идеи "ссылочной целостности метаданных" использовать его невозможно
.

Это проблема не Firebird, а идиотов не умеющих его готовить. Почему-то у меня проблем с ALTER TABLE не возникает.
23 фев 16, 17:00    [18854115]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Микола Питерский
Member

Откуда: БССР, г. Пинск
Сообщений: 1121
Симонов Денис
Микола Питерский
Так проблема в самом Firebird. Из за его оригинальной идеи "ссылочной целостности метаданных" использовать его невозможно
.

Это проблема не Firebird, а идиотов не умеющих его готовить. Почему-то у меня проблем с ALTER TABLE не возникает.


Опять оскорбления начинаются. Была подобная тема на соседней ветке в firebird. Аргументов у тебя тогда не оказалось - пошли оскорбления, а затем тему не закрыли а просто удалили без объяснения чтобы и концов не осталось.
Видать я действительно секретную информацию озвучил раз ветку похоронили. Теперь сюда с наездами лезете?

Говорю как активный пользователь Firebird c 10 стажем его использования - мне жаль потраченного на него времени - теперь все базы в срочном порядке приходится переносить на MS SQL.
23 фев 16, 18:11    [18854327]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Микола Питерский,

не я твой пост удалял. Но ты явно чепуху молотишь. Во первых ALTER TABLE ALTER COLUMN не так уж часто используется, потому что обычно перед добавлением столбца программист думает головным мозгом насчёт типа и размера. Ну да всякое бывает промахнулся, и тут IBE поможет исправить, отследив все зависимости.

И уж 1000 раз говорилось что лучше не допустить ошибки во время обновления, чем потом она обнаружится в процессе эксплуатации. И это я считаю преимуществом, пусть и затрудняющим само обновление. Разницу между компилятором и интерпретатором знаешь? Вот здесь примерно тоже самое.

У меня текущая работа ALTER COLUMN не вызывает нарекания (я про тройку где добавили контроль NULLABLE). Да и большинства тоже. Так что наверное это у вас что-то не так в консерватории.
23 фев 16, 18:25    [18854361]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Микола Питерский
Говорю как активный пользователь Firebird c 10 стажем его использования - мне жаль потраченного на него времени - теперь все базы в срочном порядке приходится переносить на MS SQL.


ну так и отправляйся туда и назад не возвращайся. Ты же вроде это уже 5 лет назад обещал.
23 фев 16, 18:27    [18854371]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
чччД
Guest
Микола Питерский
Sergey Orlov
никогда не понимал программистов, которые в клиенте делали еще что-то, кроме отображение и ввода данных...

Ну в Firebird это необходимость - потому как если процедуры хранить в БД - то ты не сможешь обновить структуру таблиц БД при помощи ALTER TABLE. Есть в Firebird такая фича (разработчики ее называют преимуществом перед другими SQL серверами) - в общем перед изменением столбца в таблице (это не только изменение его имени) нужно удалить все процедуры и триггеры, которые ссылаются на это поле - иначе ALTER TABLE COLUMN даст ошибку. Причем удалять и восстанавливать все процедуры и триггеры нужно в определенной последовательности - т.к. там тоже есть контроль зависимости. В общем вместо одной строки с ALTER TABLE приходится в скрипт добавлять сотни строк с удалением и восстановлением всех текстов процедур и триггеров, а это это гемор - поэтому все и хранят процедуры на клиенте.

Но и часто есть просто необходимость выполнить процедуру всего один раз - зачем ее в таком случае помещать на сервер?
Так что я считаю что такой механизм нужен на любом серваке.




Сложная логика
1. Firebird "плохой", так как <...>. Поэтому я использую execute block.
2. Посоветуйте "хороший" сервер, чтобы можно было без execue block обойтись. Но чтобы execute block был.
23 фев 16, 18:39    [18854402]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Yo.!
Guest
какая жесть. ес в том году потребовал анонимизировать данные клиентов с которыми какое-то время не работают. хэш естественно потребовал многие поля альтерить. представляю в какое развлечение бы это превратилось не на оракле, а на FB. ну еще как всегда доставила "адекватная" реакция фб-гайз. все таки интересно в чем причина столь плотной концентрации неадекватов именно вокруг ФБ ?
23 фев 16, 21:03    [18854957]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Аффтару уже сказали идти на Оракул.

Posted via ActualForum NNTP Server 1.5

23 фев 16, 21:06    [18854968]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Yo.!,

не говори загадками. Как связано "анонимизировать данные клиентов с которыми какое-то время не работаю" и ALTER COLUMN?
23 фев 16, 22:14    [18855173]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6641
Возможно, ТС просто нужен сервер с адекватной обработкой DDL онлайн.

Embedded SQL я не буду советовать =)
23 фев 16, 22:17    [18855183]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Симонов Денис
не говори загадками.

Это же пифии. Они иначе не умеют.

Posted via ActualForum NNTP Server 1.5

23 фев 16, 22:18    [18855185]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6641
Ну и вообще всегда есть проблема - где провести грань между бизнес-логикой и логикой обработки данных.

В зависимости от многих исходных (и в т.ч. от СУБД) она может широко плавать.
23 фев 16, 22:20    [18855191]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Siemargl,

ТС жалуется совсем не на невозможность online DDL. Он хочет чтобы метаданные не контролировались совсем. Т.е. чтобы можно было вот так

CREATE TABLE T(
  A INT,
  B INT
);

SET TERM^;

CREATE PROCEDURE P1
AS
BEGIN
  UPDATE T
  SET A = 1
  WHERE B = 2;
END^

SET TERM^;

ALTER TABLE T
DROP B;


А то что процедура P1 после выполнения последнего оператора стала кривой ему по фиг. И самый прикол, что таких процедур может быть несколько десятков, а то что они не работают заметишь лишь когда клиент начнёт тебя материть последними словами.

Флаг ему в руки барабан на шею и вперёд туда где можно ломать бизнес логику онлайн.
23 фев 16, 22:34    [18855223]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
чччД
Guest
Симонов Денис
Siemargl,

ТС жалуется совсем не на невозможность online DDL. Он хочет чтобы метаданные не контролировались совсем. Т.е. чтобы можно было вот так
+

CREATE TABLE T(
  A INT,
  B INT
);

SET TERM^;

CREATE PROCEDURE P1
AS
BEGIN
  UPDATE T
  SET A = 1
  WHERE B = 2;
END^

SET TERM^;

ALTER TABLE T
DROP B;


А то что процедура P1 после выполнения последнего оператора стала кривой ему по фиг. И самый прикол, что таких процедур может быть несколько десятков, а то что они не работают заметишь лишь когда клиент начнёт тебя материть последними словами.

Флаг ему в руки барабан на шею и вперёд туда где можно ломать бизнес логику онлайн.


Ну, в общем, есть такие РСУБД.
Где целостность метаданных можно портить так, как желает ТС. Изменил DDL таблички, а процедурки стали невалидными. Никто не кричит. Пока к процедуре на обратится.
И придется править всё, с учетом зависимостей. Иначе во время эксплуатации беда случится.
Возможно, в таких РСУБД последовательность модификации структуры получается короче, чем в FB.
Но там своих проблем тоже хватает: https://habrahabr.ru/post/222397/
Надеюсь, что ТС сможет их успешно избежать.
23 фев 16, 23:11    [18855321]     Ответить | Цитировать Сообщить модератору
 Re: Ищу сервер, позволяющий выполнять код процедуры на клиенте  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6641
Симонов Денис,

Предлагаю не смотреть, как это сделано в СУБД, той или иной.

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

И в итоге мы получим всего пару вариантов

- нельзя внести изменения, т.к. нужно изменить зависимый объект ХХХ [который используется]

- после внесения изменений инвалидируются объекты


Кроме того в программировании есть много наработок типа "совместимое приведение типов", которыми в СУБД пока тоже не пользуются.

С другой стороны, онлайн изменения СУБД сложнее, чем статическая рекомпиляция типов.

Ну а что хочет и выражает мыслью ТС, оставим за кадром =)
23 фев 16, 23:19    [18855334]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить