Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Помогите, кто чем может!   Найти похожие ветки 

 
Ega23 ©   (2005-01-17 12:02) [0]

Коллеги, у меня несколько странная просьба. Пришлите несколько хранимых процедур на диалекте Interbase мне на ящик. В выходные игрался с IB, столкнулся со множеством проблем, все сразу и не опишешь. Хотелось бы посмотреть на образцы кода процедур, по исходникам гораздо проще разбираться...
Адрес: egorov@dedal.dubna.ru


 
by ©   (2005-01-17 12:06) [1]

Ega23 ©   (17.01.05 12:02)
А какая версия Interbase используется и какой диалект базы?


 
by ©   (2005-01-17 12:18) [2]

Смотри почту.


 
Ega23 ©   (2005-01-17 12:28) [3]

Смотри почту.

Большое спасибо, думаю на первое время - хватит. А потом, надеюсь, и не понадобится - сам постораюсь разобраться...

Кстати, что такое SET TERM ; ^  ?   :о)

А какая версия Interbase используется и какой диалект базы?

Ох.. Там столько непоняток возникло...
Вообще-то была попытка создания базы под FireBird 1.5xxxx, но столкнулся с чисто "административными" трудностями - IBExpert не хочет работать без запущенного IB Server"а. Установил сервер (тот, что в комплекте с Delphi 7 идёт, по-моему 5.5), после чего база успешно создалась.
самое поганое, что нету книжек по IB, купить негде, ибо город маленький (заказал на OZone, но когда ещё дойдёт...), а тот хэлп, что установился вместе с сервером и экспертом - несколько "нечитабельный" после Books On-Line....


 
Sergey13 ©   (2005-01-17 12:36) [4]

2[3] Ega23 ©   (17.01.05 12:28)
>Вообще-то была попытка создания базы под FireBird 1.5xxxx, но столкнулся с чисто "административными" трудностями - IBExpert не хочет работать без запущенного IB Server"а.
Как это? ФБ был эмбеддед что ли? Так и так вроде можно. Или ФБ надо было запустить.


 
Ega23 ©   (2005-01-17 12:40) [5]

ФБ был эмбеддед что ли?

Ага. Вообще целью этих "игр" было повышение собственной квалификации - изучение новой СУБД + компонентов доступа из Delphi.
Возможно я всё в корне не так делаю, как надо. Возможно во мне ещё сильны стереотипы MS SQL....


 
Sergey13 ©   (2005-01-17 12:43) [6]

2[5] Ega23 ©   (17.01.05 12:40)
>Ага.
Надо эмбеддовские файлы (какие, написано в doc\README_embedded.txt) положить в каталог Эксперта согласно опять же doc\README_embedded.txt.
Создавать БД не пробовал, но с существующей БД работает.


 
by ©   (2005-01-17 13:58) [7]

Скачай и поставь все таки полный FireBird 1.5, а то у Embeded есть свои ограничения.

SET TERM ^ ; // Устанавливаем знак окончания выражения на ^ так как в хранимках точка с запятой используется как символ конца строки

CREATE PROCEDURE ADO_SQL_EXPLORER_HISTORY_D(
   REC_ID INTEGER)
AS
BEGIN
 DELETE FROM ADO_SQL_EXPLORER_HISTORY
 WHERE (REC_ID = :REC_ID);
END
^ // окончание выражения для создания хранимки

SET TERM ; ^ // возвращаем точку с запятой назад, как разделитель.

SET TERM используется в скриптах, когда много действий пачкой идет, и среди них есть создание view или sp, т.е. кода в котором тоже есть точка с запятой.

Немного корявое объяснение, но может подойдет. ))


 
Ega23 ©   (2005-01-17 14:04) [8]

Немного корявое объяснение, но может подойдет. ))

Более чем. В смысле, подойдёт, а не корявое... :о)
Некий аналог {IFDEF}, в общем...


 
YurikGL ©   (2005-01-17 14:22) [9]

Процедура добавления новой записи, возвращающая сгенерированный id-к

CREATE PROCEDURE ADDCITY(
   NAIMENOVAN VARCHAR(20) CHARACTER SET NONE)
RETURNS (
   ID INTEGER)
AS
begin
ID = gen_id(gcity, 1);
insert into city (Idcity,Naimenovan) values(:ID,:NAIMENOVAN);
end


Процедура изменения существующей записи
CREATE PROCEDURE EDITCITY(
   ID INTEGER,
   NAIMENOVAN VARCHAR(20) CHARACTER SET NONE)
AS
begin
update CITY set Naimenovan=:NAIMENOVAN Where IdCITY=:ID;
end


Рекуррентная процедура поиска по иерархической структуре типа сеть...

CREATE PROCEDURE RECURALLNODES(
   IDSBORKAIN INTEGER,
   COUNTSIN INTEGER)
RETURNS (
   IDSBORKAOUT INTEGER,
   COUNTSOUT INTEGER)
AS
begin
 IdSborkaOut=IdSborkaIn;
 CountSOut=CountSIn;
 Suspend;
 for Select IdSborkaChild, sum(CountS*:CountSIn)
     From IerhLink
     where IdSborkaParent=:IdSborkaIn
     group by IdSborkaChild
     into :IdSborkaOut, :CountSOut
     do begin

        For Select IdSborkaOut, CountSOut
            From RecurAllNodes(:IdSborkaOut,:CountSOut)
            InTo :IdSborkaOut,:CountSOut
            do suspend;

        End

end


 
YurikGL ©   (2005-01-17 14:23) [10]

Если есть кому - просьба покритиковать> YurikGL ©   (17.01.05 14:22) [9]


 
by ©   (2005-01-17 14:34) [11]

Есть один практический совет. Писать имена полей и названия табличек заглавными английскими буквами. Типа TP_ABONENT. FireBird поддерживает и написание типа TpAbonent, его нужно брать в кавычки "TpAbonent". Но если прийдется когда то вязать табличку через ODBC в Access или еще какие извраты делать, то может не работать наименование вида TpAbonent. Я когда то думал что мне это не пригодится, но когда пришлось 50 таблиц и код переделывать на наименования вида TP_ABONENT - я это правило запомнил очень четко )))


 
Ega23 ©   (2005-01-17 14:38) [12]

Есть один практический совет. Писать имена полей и названия табличек заглавными английскими буквами.

Я через IBEхpert работал, он сразу UpperCase делает.


 
Ega23 ©   (2005-01-17 14:38) [13]

2 YurikGL ©   (17.01.05 14:22) [9]

Спасибо.


 
by ©   (2005-01-17 14:51) [14]

Ega23 ©   (17.01.05 14:38) [12]
сразу UpperCase делает

Ну ему можно сказать этого не делать )) Но UpperCase надежнее ))



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1104780165
Jiny
2005-01-03 22:22
2005.02.06
аналог EncodeDate в Interbase или как сцепить строковые значения


3-1105113349
std
2005-01-07 18:55
2005.02.06
Инструментарий


3-1104353220
SilverDragon
2004-12-29 23:47
2005.02.06
Базы (таблицы) в Microsoft Access


3-1104320501
k2
2004-12-29 14:41
2005.02.06
В какую сторону можно оптимизировать запрос?


1-1106467230
dima
2005-01-23 11:00
2005.02.06
как применить функцию ExtractFileName на Tstrings





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский