Форум: "Потрепаться";
Текущий архив: 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.036 c