Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.23;
Скачать: CL | DM;

Вниз

Динамическое создание столбцов процедурой на 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-1209540771
IgorBet
2008-04-30 11:32
2008.11.23
Вопросы надежности при частом создании/ удалении таблиц


1-1202591077
NaRuTo
2008-02-10 00:04
2008.11.23
Нестандартный ListView


11-1195771438
tigra
2007-11-23 01:43
2008.11.23
kol+vcl indy


3-1209663336
trubin
2008-05-01 21:35
2008.11.23
Дерево в БД - проблема при удалении узла


2-1223812028
jonin
2008-10-12 15:47
2008.11.23
Удаленное управление компьютером