powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выполнить скрипт
19 сообщений из 119, страница 5 из 5
Выполнить скрипт
    #38997254
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-я подумал: "а почему никто не предлагает execute block? Это же естественно,
просто, и прям то что нужно пользователю".
Хренасе понятие о "естественности". isql - вот это естественно. А EB с ES внутри это
натуральная проктостоматология.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997260
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- ... т.к. он новичок , я подумал: "а почему никто не предлагает execute block? Это же естественно, просто, и прям то что нужно пользователю".
вот поэтому и не предлагали
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997263
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

не предлагали потому, что знали что не работает. А вот предлагать то что не работает как то неправильно. Не считаешь?
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997268
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Dimitry Sibiryakov-Нет чтобы сказать: "да, слушай, действительно тут было бы удобно атомарно" :)

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

Плюсы - не мой родной. И есть ощущение что я не смогу придерживаться шаблонов мышления которыми люди оперировали когда писали код 30 лет назад. Так что если я возьмусь, то получится отдельная ветка FB, из которой в результате будет выкинут весь мусор и код кторой будет переработан под мои внутренние стандарты, которые подразумевают 100% владение кодом, т.е возможность его изменения в любом направлении со 100% пониманием результатов таких изменений.
Так что я не вариант :)
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997271
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

ну ладно попробую объяснить по другому.

Код: sql
1.
2.
3.
4.
5.
execute block as
begin
  create table a(b int);
  insert into a(b) values(1);
end



как известно execute block это анонимный PSQL блок, т.е. хранимая процедура которая не хранится.
Т.е. это должно быть эквивалентно

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create procedure p1 
as
begin
  create table a(b int);
  insert into a(b) values(1);
end

execute procedure p1;

drop procedure p1;



Теперь вспоминаем, что ХП в FB это не просто тупой кусок интерпретируемого кода. Что она компилируется в промежуточный язык BLR, который собственно и исполняется при вызове. Во время компиляции процедура проверяет правильность записанного в ней кода, в том числе и то что все объекты используемые в ней существуют. Так вот эта процедура не скомпилируется, если в ней производятся манипуляции с объектом метаданных которого не существует.

execute block хоть нигде не хранится, но проходит тот же самый путь. Когда мы его препарируем появляется BLR (т.е как бы происходит компиляция на лету), который собственно и исполняется. Так понятней?
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997273
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Dimitry SibiryakovХренасе понятие о "естественности". isql - вот это естественно.
Новичкам обычно не удобно что старичкам естественно :)
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997276
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Симонов Денис
Вижу косяк, да.
Вообще беседа оказалась поучительной.
И то что я не увидел почему так делать нельзя мне говорит о многом.
И то что другие не указали на этот косяк, т.к. видимо просто его не осознали пока Денис не написал (но кто сейчас в этом признается?) - это тоже мне говорит о многом.
Спасибо всем за этот опыт.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997282
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да закройте уже этот цирк одного актера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997285
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

если честно, то поначалу мне показалось что ты нас тут тролишь, поэтому с тобой так резко и говорили. Ну теперь, то я понимаю, что ты просто не въезжаешь в тему.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997292
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис-,

ну ладно попробую объяснить по другому.

Этот пример я приводил ровно 2 страницы флейма назад :-)
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997295
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Симонов Денисесли честно, то поначалу мне показалось что ты нас тут тролишь, поэтому с тобой так резко и говорили. Ну теперь, то я понимаю, что ты просто не въезжаешь в тему.
Я никогда не троллю, как бы кому этого не виделось и не хотелось. Так что если вдруг увидите что я похоже "вот тут" троллю, то просто уточните у меня правильно ли я понимаю то, о чём говорю в "том месте" где вам кажется я троллю.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997296
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
DarkMasterСимонов Денис-,

ну ладно попробую объяснить по другому.

Этот пример я приводил ровно 2 страницы флейма назад :-)
Если вы про этот 17837663 пример, то он совсем про другое.
Денис говорит про принципиальную некомпилябельность стэйтмента потому как таблицы A нет на момент компиляции, а у вас пример про невыполнимость интсерта потому как таблицы нет на момент запуска.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997337
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

Найди 2 отличия :-) Пример демонстрирует ровно одно и то же.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997339
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

не совсем. При использовании execute statement внутри execute block не проверяется существования объектов метаданных на этапе компиляции/препарирования. Только в момент исполнения.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997350
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Угу, согласен...

P.S. А такое прокатывает...

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
execute block
returns (id integer)
as
begin
  in autonomous transaction do
     execute statement 'create table test0002(id integer)';
  in autonomous transaction do
     execute statement 'insert into test0002(id) values (1)';
end
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997610
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы сильно удивился, если б не прокатило
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997633
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Гаджимурадов Рустам!
You wrote on 2 июля 2015 г. 11:49:43:

Гаджимурадов Рустам> Да закройте уже этот цирк одного актера.+500!
кловун не смешной.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997931
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterА такое прокатывает...
потому что это работает так же, как set autoddl в isql.
...
Рейтинг: 0 / 0
Выполнить скрипт
    #38997955
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvDarkMasterА такое прокатывает...
потому что это работает так же, как set autoddl в isql.

Та это я к тому, что с автономками можно наворотить всякого...ненужного ;)
...
Рейтинг: 0 / 0
19 сообщений из 119, страница 5 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выполнить скрипт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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