Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Extendet function в (см. UDF)? [MSSQL]


АлексейК ©   (2003-04-29 04:28:00) 

Возникло желание написать свой пакет функций для MSSQL2000, подобных UDF в InterBase, однако в документации нашел только описание создания расширенных хранимых процедур, которые подключаются из DLL. Но для их выполнения нужно использовать команду EXEC, и следовательно в выражение их неподставишь. Если у кого-нибудь оптыт в этом деле?


АлексейК   (2003-04-29 12:09:00) [1]

Поясняю.
Для сравнения два запроса:
1. select substring(field_text, x, y)+" "+substring(field_text, x, y) from table
2. select format_str(field_text) from table
Где format_str
create function format_str(@vl varchar(X))
returns varchar(x)
as
begin
declare @r varchar(x)
set @r=substring(vl, x, y)+" "+substring(vl, x, y)
return(@r)
end

Так вот первый запрос (учитывая, что substring встроенная функция) работает на порядок быстрее, и загрузка процессора при этом много ниже. Если сравнить трассировку этих двух запросов, то разница приципиальная. Так вот и хотелось бы подключить свои функции из DLL, именно как функции дабы использовать в запросах.


stone   (2003-04-29 09:13:00) [2]


> Возникло желание написать свой пакет функций для MSSQL2000

см. справку в BOL по CREATE FUNCTION


wicked   (2003-04-29 05:58:00) [3]

а функцию с exec"ом не судьба написать?...


mad0max   (2003-04-29 05:11:00) [4]

А что в MS SQL есть Extented Functions? Я все время думал что там Extented Procedures, я думаю этим все сказано....

А вообще я в свое время писал эти расширенные процедуры, в один прекрасный момент мне надоли постоянные тормоза и я переписал все на нормальный SQL, по сей день не жалею об этом... Так что я бы посоветовал использовать обычные хранимые процедуры или функции....

Я так думаю...
:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо