Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1223894446
Сергей
2008-10-13 14:40
2008.11.23
Как скопировать файл любого формата в буфер?


15-1222317804
TUser
2008-09-25 08:43
2008.11.23
Не стреляй


15-1222172851
Vlad Oshin
2008-09-23 16:27
2008.11.23
скажите, это что такое?


15-1221834038
tesseract
2008-09-19 18:20
2008.11.23
Экономика


2-1223621197
Grant
2008-10-10 10:46
2008.11.23
Соединение с удаленной базой данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский