Форум: "Базы";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание столбцов процедурой на FireBird Найти похожие ветки
← →
DelphiN! © (2008-05-08 12:37) [0]Есть задача, написать процедуру, которая будет выводить данные в столбцах, при этом количество столбцов будет зависеть от передаваемых процедуре параметров. Как создавать столбцы динамически?
FireBird 1.5 Dialect 3
← →
Сергей М. © (2008-05-08 12:41) [1]см. PSQL-предложение
EXECUTE STATEMENT
← →
DelphiN! (2008-05-08 13:23) [2]
> Сергей М. © (08.05.08 12:41) [1]
Я не нашел как создавать столбец при помощи EXECUTE STATEMENT
Не могли бы вы привести пример создания одного столбца?
← →
Сергей М. © (2008-05-08 13:46) [3]
> DelphiN! © (08.05.08 12:37)
В наборах данных, как и в таблицах БД, есть поля, а не столбцы.
И ты вообще о какой процедуре ведешь речь ? О хранимой ?
← →
PEAKTOP © (2008-05-08 19:26) [4]> В наборах данных, как и в таблицах БД, есть поля, а не столбцы.
Смею заметить, что в Firebird для определения атрибутов сущностей используется именно термин "столбцы", т.к. в Firebird это тоже сущность, имеющая свои свойства не только как типа хранимых данных, но и условий (ограничений), которые на эти данные накладываются.
> DelphiN! © (08.05.08 12:37)
>FireBird 1.5 Dialect 3
Никак. Сколько раз можно повторять: в Firebird хранимая процедура не может иметь переменное количество доменов потому, как они объявляются при создании процедуры.
То есть выхода у тебя по сути три:
1) играться с метаданными "на лету", пересоздавая каждый раз процедуру перед выполнением, за что бъют по пальцам.
2) воспользоваться Firebird 2.0 и старше. Там есть конструкция EXECUTE BLOCK, подробнее - читай в документации http://firebird.name/doku.php?id=execute_block
3) Подумать хорошенько над запросом к БД на предмет его выполнения при помощи тривиального SELECT.
← →
Сергей М, (2008-05-08 19:57) [5]
> PEAKTOP © (08.05.08 19:26) [4]
> в Firebird для определения атрибутов сущностей используется
> именно термин "столбцы"
Приведи, пож., ссылку на первоисточник ..
> в Firebird хранимая процедура
Автор пока нисловом не обмолвился о ХП, так что можно и еще десяток раз повторить)
← →
Виталий Панасенко(дом) (2008-05-08 22:54) [6]
> Сергей М, (08.05.08 19:57) [5]
Я в книгах вообще так и читал "столбцы"... хотя при создании таблицы(исторический факт, DBD, называется FIELD).. самого в оману вводило
← →
PEAKTOP © (2008-05-09 05:33) [7]> Сергей М, (08.05.08 19:57) [5]
>
> Приведи, пож., ссылку на первоисточник ..
InterBase6.0 / langref.pdf / CREATE DOMAIN (искать на ibase.ru)
Неофициальный (пока не будет выполнен до конца) перевод:
http://firebird.name/doku.php?id=create_domain
← →
Сергей М, (2008-05-09 18:14) [8]
> PEAKTOP © (09.05.08 05:33) [7]
Домен и столбец - две разные разницы
← →
DelphiN! (2008-05-12 08:11) [9]
> PEAKTOP © (08.05.08 19:26) [4]
Никак. Сколько раз можно повторять: в Firebird хранимая процедура не может иметь переменное количество доменов потому, как они объявляются при создании процедуры.
То есть выхода у тебя по сути три:
1) играться с метаданными "на лету", пересоздавая каждый раз процедуру перед выполнением, за что бъют по пальцам.
2) воспользоваться Firebird 2.0 и старше. Там есть конструкция EXECUTE BLOCK, подробнее - читай в документации http://firebird.name/doku.php?id=execute_block
3) Подумать хорошенько над запросом к БД на предмет его выполнения при помощи тривиального SELECT.
Спасибо, за советы!
Заинтересовал пункт 2
А какие последствия могут быть при переходе с FireBird 1.5 на FireBird 2.0+ и какие действия для этого необходимо выполнить. Естественно, в БД есть важные данные, и необходимо не допустить их потери
← →
Виталий Панасенко © (2008-05-12 11:12) [10]Backup под 1,5 - RESTORE под 2,х...если все нормально спроектировано, то последствий никаких
← →
DelphiN! © (2008-05-12 12:23) [11]Спасибо всем за помощь!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c