Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Передача имени таблицы в execute block как параметр. / 23 сообщений из 23, страница 1 из 1
02.11.2016, 15:49
    #39340079
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Добрый день!
Интересна передача имени таблицы в execute block как параметр.
Возможно тема избита но хочу спросить еще раз.
Такое можно сделать с пом. "EXECUTE STATEMENT".
Можно ли еще как-нибудь?
Firebird 2.5.5.
...
Рейтинг: 0 / 0
02.11.2016, 15:52
    #39340084
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Mironico,

ещё можно сам EXECUTE BLOCK на клиенте собрать, больше никак
...
Рейтинг: 0 / 0
02.11.2016, 15:59
    #39340089
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Понятно, спасибо!
...
Рейтинг: 0 / 0
02.11.2016, 16:02
    #39340096
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Но лучше всё же отрихтовать руки тому чудаку, который проектировал БД, позволяющую делать
с собой такие трюки. Ибо налицо разнесение одной сущности по разным таблицам, что обычно
является грубой ошибкой проектирования.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.11.2016, 17:04
    #39340159
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Можно и на клиенте собрать, можно и процедурой оформить...
Но это если структура таблиц одинакова и как-то контролировать значения входного параметра еще...
Мда... Нарушение при проектировании налицо в этом случае.

Пример с выборкой значений поля F1 из произвольной таблицы:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
 execute block (TABLE_NAME varchar(50) = :TN)
 returns ( F1 varchar(100))
 as
 declare variable s varchar(1000);
 begin
  s='select F1 from '||TABLE_NAME;
  for execute statement s into :F1 do suspend;
 end
...
Рейтинг: 0 / 0
03.11.2016, 11:16
    #39340623
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Dimitry SibiryakovИбо налицо разнесение одной сущности по разным таблицам

Совершенно необязательно

Может быть использование одинаковой структуры данных для разных сущностей, например.
...
Рейтинг: 0 / 0
03.11.2016, 11:19
    #39340628
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Hello, Arioch!
You wrote on 3 ноября 2016 г. 11:18:41:

Arioch> Может быть использование одинаковой структуры данных для разных сущностей, например.если структура одна, то назачем разные таблицы?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.11.2016, 11:55
    #39340666
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
AriochМожет быть использование одинаковой структуры данных для разных сущностей, например.

"Если что-то выглядит как утка, ходит как утка и крякает как утка, то это - утка."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.11.2016, 15:02
    #39340877
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Мимопроходящийесли структура одна, то назачем разные таблицы?Ну там же всё по-разному.
Например, для рублей, долларов и юаней.
...
Рейтинг: 0 / 0
03.11.2016, 15:21
    #39340898
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Например, справочники. Подавляющее количество полей одинаковых. У нас разработчик структуры БД посчитал примерно вот так "если структура одна, то назачем разные таблицы?". И теперь таблица физически одна. Есть поле признак, по нему различается сущность. Мне, например, не нравиться такой подход. И запросы неудобно писать/читать. И, самое главное, подозреваю, что запросы выполняются медленнее.
...
Рейтинг: 0 / 0
03.11.2016, 18:24
    #39341089
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Dimitry SibiryakovAriochМожет быть использование одинаковой структуры данных для разных сущностей, например.

"Если что-то выглядит как утка, ходит как утка и крякает как утка, то это - утка."

ЖЖОШЬ!

То есть, например, дерево отделов/сотрудников и деревья адресов типа КЛАДР или ОКАТО надо считать одной уткой и объединять в одной таблице. Ведь структура-то одна и та же - дерево.

Великолепно!
...
Рейтинг: 0 / 0
03.11.2016, 18:28
    #39341095
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Кстати, да, КЛАДР/ФИАС в одной таблице это зачёт.
Может всё, что крякает - это утка, но всё же готовить
их можно и нужно по-разному.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.11.2016, 18:40
    #39341111
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Что-то вы тупите, товарищи... Ещё же не пятница.

AriochТо есть, например, дерево отделов/сотрудников и деревья адресов типа КЛАДР или ОКАТО надо
считать одной уткой и объединять в одной таблице.

Я говорю, что "выглядит", "ходит" и "крякает" это атрибуты сущности "утка" и любая
(неизвестная) сущность с этим набором атрибутов является сущностью "утка".

А вы с какого-то перепугу всё выворачиваете и начинаете утверждать, что все сущности,
образующие деревянные метаструктуры, обязаны быть одной сущностью и иметь одинаковый набор
атрибутов. Очнитесь, способ взаимодействия с другими сущностями атрибутом сущности не
является.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.11.2016, 22:48
    #39341238
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Убедил, чертяка языкастый.
Не всё крякает и не всё утка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.11.2016, 12:18
    #39344708
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Dimitry Sibiryakov,

"ID" и "PARENT_NODE_ID" - это аттрибуты сузности или просто колонки в таблице ?

Теперь очнитесь, вернитесь к исходному письму - 19851542 - и найдите там упоминание каких-нибудь других сущностей, которые не относятся к структурам хранения данных.
...
Рейтинг: 0 / 0
10.11.2016, 12:30
    #39344723
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
AriochВедь структура-то одна и та же - дерево.
дерево в РСУБД - это не структура, это "способ отображения".
...
Рейтинг: 0 / 0
11.11.2016, 10:25
    #39345400
HS
HS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Даешь наследование в Птице!
...
Рейтинг: 0 / 0
11.11.2016, 10:28
    #39345404
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
HS,

да ну его в баню. Ничего не имею против объектных типов, но наследование таблиц для реляционных СУБД выглядит противоестественно.
...
Рейтинг: 0 / 0
11.11.2016, 12:51
    #39345518
HS
HS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Симонов Денис,

Особенно противоестественно в Postgres.
Кстати, в соседнем форуме обзывают нашу Птичку жареным петухом - вот же ироды.

А если серьезно, много раз видел таблицы PickList (id, description), PickListItem(id, parent, description) fk PickList для справочников. Компании-разработчики сидят на тоннах зеленых денег.
...
Рейтинг: 0 / 0
11.11.2016, 13:00
    #39345530
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
Hello, Hs!
You wrote on 11 ноября 2016 г. 12:57:00:

Hs> А если серьезно, много раз видел таблицы PickList (id, description), PickListItem(id, parent, description) fk PickList для справочников.
> Компании-разработчики сидят на тоннах зеленых денег.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2016, 13:02
    #39345532
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
HS,

да и в нём тоже. В PG вообще многое было введено в качестве экспериментального. Да и наследование там сейчас применяется в основном как замена партиционированию. Как только появится нативная поддержка партиционирования эта фича перейдёт в разряд Legacy.

Если бы идея была удачной, то она давно бы прижилась в других популярных СУБД.

А жареным петухом птичку там называет ровно один троль, который периодически трётся в сравнении СУБД.
...
Рейтинг: 0 / 0
11.11.2016, 13:22
    #39345553
HS
HS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
МП,

Зависти псто?
...
Рейтинг: 0 / 0
11.11.2016, 15:04
    #39345681
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача имени таблицы в execute block как параметр.
kdvAriochВедь структура-то одна и та же - дерево.
дерево в РСУБД - это не структура, это "способ отображения".

"вы находитесь в корзине воздушного шара"

в таком случаем в РСУБД ровно одна единственная структура - двумерная матрица

и да "дерево" - это структура существующая над РСУБД и тем или иным способом оторбаженная в одну или несколько 2D матриц.

Это ничего не меняет.

"дерево" структура типовая, кол-во типовых способов ее отображения на РСУБД ограничено.

процедура так или иначе обслуживающая деревья может вообще не зависеть от того, какие конкретно элементы в том или ином дереве хранятся, а заниматься только обработкой "служебных" данных, отображающих дерево на РСУБД.

Это просто был пример того, что " передача имени таблицы/столбца в execute block как параметр " вовсе не требует "разнесение одной сущности по разным таблицам". Хотя и не запрещает тоже.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Передача имени таблицы в execute block как параметр. / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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