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

Вниз

Длина строки в Firebird 1.5   Найти похожие ветки 

 
Rule ©   (2005-09-20 16:23) [0]

необходима функция длины строки, ну допустим чтоб сделать такой запрос select length(field1) from table1 ...
спасибо всем за помощь ...
неужели только УДФ ???


 
Rule ©   (2005-09-20 16:24) [1]

забыл главное :-))), доки уже перерыл :-)))


 
Desdechado ©   (2005-09-20 16:26) [2]

ib_udf


 
Johnmen ©   (2005-09-20 16:28) [3]

Не обязательно удф, но чуть-чуть кода в хп, можно...


 
Rule ©   (2005-09-20 16:32) [4]

Desdechado ©   (20.09.05 16:26) [2]
ща поищу, но вроед смотрел ...


 
Rule ©   (2005-09-20 16:33) [5]

Johnmen ©   (20.09.05 16:28) [3]
а подтолкнуть на мысль как это сделать ???


 
Rule ©   (2005-09-20 16:36) [6]

Johnmen ©   (20.09.05 16:28) [3]

нашел

CREATE PROCEDURE Len (str VARCHAR(100))
 RETURNS (len INTEGER) AS
DECLARE VARIABLE pat VARCHAR(100);
BEGIN
 len = null;
 IF (str IS NULL) THEN EXIT;

 pat = "";
 len = 0;
 WHILE (NOT str LIKE pat) DO BEGIN
   pat = pat || "_";
   len = len + 1;
 END
END


 
Rule ©   (2005-09-20 16:36) [7]

Desdechado ©   (20.09.05 16:26) [2]

посмотрел не нашел ???, мож подскажешь ???


 
Johnmen ©   (2005-09-20 16:43) [8]

Можно ещё так попробовать (не уверен насчет работоспособности параметра в сабстринге для FB1.5):

S - строка
I=1;
C=SUBSTRING(C FROM I FOR 1);
WHILE (C<>"") DO BEGIN
 I=I+1;
 C=SUBSTRING(C FROM I FOR 1);
 END


 
Rule ©   (2005-09-20 16:53) [9]

Johnmen ©   (20.09.05 16:43) [8]
ну я думаю так будет дольше ...


 
Johnmen ©   (2005-09-20 16:55) [10]

>Rule ©   (20.09.05 16:53) [9]
>ну я думаю так будет дольше ...

Я думаю, что нет.
Да и не важно это - экономить на спичках :)


 
Desdechado ©   (2005-09-20 16:58) [11]

DECLARE EXTERNAL FUNCTION strlen
CSTRING(4096)
RETURNS INTEGER BY VALUE
ENTRY_POINT "IB_UDF_strlen" MODULE_NAME "ib_udf";
UDF - самое быстрое решение


 
Rule ©   (2005-09-20 17:15) [12]

Desdechado ©   (20.09.05 16:58) [11]
спасибо, действительно самое быстрое решение, с этим я согласен ... токо вот в сторедах преимущество, что после восттановления базы не надо опять объявлять внешнюю функцию ...


 
Андрей Жук ©   (2005-09-20 17:40) [13]


> токо вот в сторедах преимущество, что после
> восттановления базы не надо опять объявлять внешнюю
> функцию ...

UDF также не нужно опять объявлять


 
Desdechado ©   (2005-09-20 17:52) [14]

в ХП другое преимущество - права
а с восстановлением проблемы только тогда, когда dll отсутствует


 
Rule ©   (2005-09-20 17:59) [15]

Андрей Жук ©   (20.09.05 17:40) [13]
эта имел ввиду что надо наличие длл или со на сервере


 
Rule ©   (2005-09-20 18:00) [16]

Desdechado ©   (20.09.05 17:52) [14]
в ХП другое преимущество - права


кстати да, но думаю в данном случае это не актуально


 
Андрей Жук ©   (2005-09-20 18:38) [17]


> эта имел ввиду что надо наличие длл или со на сервере

ib_udf - в штатной поставке firebird/interbase


 
Rule ©   (2005-09-20 19:04) [18]

Андрей Жук ©   (20.09.05 18:38) [17]
эт я знаю, опять жеж шла речь не о конекретно этой удф, а о целесообразности подключать удф или писать сторед ...



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

Форум: "Базы";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.066 c
4-1125065609
heady
2005-08-26 18:13
2005.10.30
получить последний(текущий)адрес из открытого IE


6-1120766047
stals
2005-07-07 23:54
2005.10.30
WinSock


14-1129097189
Priest
2005-10-12 10:06
2005.10.30
Flash Mp3 плеер


3-1127201614
Ольга
2005-09-20 11:33
2005.10.30
Как создать View с рекурсией


2-1128600837
Sysanin
2005-10-06 16:13
2005.10.30
Переменные в функциях





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