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

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

Поиск символа из масcива в строке [FireBird 2.1]


Страницы:   1 2

DelphiN! ©   (2008-07-22 13:08:00) 

Нужно написать запрос, который выводил все записи, в которых встречается какой либо символ из английского и русского алфавита, как можно это сделать?
Нужно что-то похожее на
select * from table where field1 in ['A..'z']


DelphiN!   (2008-07-24 12:04:00) [1]


> turbouser ©   (24.07.08 08:36) [28]
>
> см. \program files\firebird\udf\ib_udf.sql
> выполняешь скрипт - будет в базе функция substr
> и еще много чего полезного :)


Заработало!!!

Огромное спасибо всем за помощь!


Виталий Панасенко(дом)   (2008-07-24 08:43:00) [2]

Найди RFUNC - там все есть, DLL скрипты на подключение/отключение UDF. Бесплатная библиотека


turbouser   (2008-07-24 08:36:00) [3]


> DelphiN!   (23.07.08 11:57) [23]

см. \program files\firebird\udf\ib_udf.sql
выполняешь скрипт - будет в базе функция substr
и еще много чего полезного :)


DelphiN!   (2008-07-24 04:54:00) [4]


> Правильный$Вася   (23.07.08 13:00) [24]
>
> в справке по IB6 написано


Не могу найти :(


DelphiN!   (2008-07-24 04:42:00) [5]


> Loginov Dmitry ©   (23.07.08 22:27) [25]



> DelphiN!   (23.07.08 10:03) [19]



> В FB 2.1 данная процедура работает хорошо, но при попытки
> использования ее в FB 1.5.1 ругается на строку


Основная версия FB в компании 2.1, однако на некоторых серверах еще осталась 1.5.1 ...


Loginov Dmitry   (2008-07-23 22:27:00) [6]

> В FB 2.1 данная процедура работает хорошо, но при попытки
> использования ее в FB 1.5.1 ругается на строку Ch = substring(:
> S from :i for 1);. Какой есть аналог функции для FB 1.5?


Так тыж FB 2.1 используешь (см [5]). К чему тогда о проблемах с FB 1.5 спрашивать?


Правильный$Вася   (2008-07-23 13:00:00) [7]


> В смысле какое описание должно быть у "правильной" substring?

в справке по IB6 написано


DelphiN!   (2008-07-23 11:57:00) [8]

В смысле какое описание должно быть у "правильной" substring?


DelphiN!   (2008-07-23 11:43:00) [9]


> Правильный$Вася   (23.07.08 11:10) [21]


А как подключить UDF?


Правильный$Вася   (2008-07-23 11:10:00) [10]


>  Какой есть аналог функции для FB 1.5?

подключи UDF, в твоей версии неттакой встроенной функции, но есть в стандартном списке UDF
при этом понимает параметры-переменные


DelphiN!   (2008-07-23 10:16:00) [11]

Если я заменяю :i на статическое число, то все работает, как решить это проблему?
Ch = substring(:S from :i for 1);
на
Ch = substring(:S from 1 for 1);


DelphiN!   (2008-07-23 10:03:00) [12]

Спасибо все за советы!
Так как используется FB ниже 2.5 придётся использовать ХП ...


BEGIN
USERTYPE = 'MEMBER';
NUM='0123456789';
I=1;
Ch = '/';
while ((ch <> '')and(usertype = 'MEMBER')) do
begin
Ch = substring(:S from :i for 1);
if ((:NUM containing :Ch)) then
begin
  USERTYPE = 'NUM';
  break;
end
I=:I+1;
end
suspend;
END


В FB 2.1 данная процедура работает хорошо, но при попытки использования ее в FB 1.5.1 ругается на строку Ch = substring(:S from :i for 1);. Какой есть аналог функции для FB 1.5?
Вот ошибка :

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 16, column 25.
:.


Loginov Dmitry   (2008-07-23 00:02:00) [13]

> А можно ли проверить число ли в строке или нет? Только без
> ХП


EXECUTE BLOCK. Аналог ХП, но можно задавать как и любой SELECT-запрос в компоненте TIBDataSet. Поддерживается с версии 2.0. Хороший пример есть в статье РЕАКТОРА "Firebird 2.0 на полную катушку".


Правильный$Вася   (2008-07-22 18:46:00) [14]


> stas ©   (22.07.08 17:34) [16]

если число конкретное, то [15]
если узнать, а вообще число ли оно, то CAST


stas   (2008-07-22 17:34:00) [15]

Правильный$Вася   (22.07.08 17:29) [15]
не он хочет узнать есть ли в строке abcd345efg число


Правильный$Вася   (2008-07-22 17:29:00) [16]


> А можно ли проверить число ли в строке или нет?

'abcd345efg' LIKE '%345%'


Сергей М.   (2008-07-22 16:51:00) [17]


> можно ли проверить число ли в строке или нет?


Можно, если ты понимаешь, что такое "число в строке")


turbouser   (2008-07-22 15:02:00) [18]


> PEAKTOP ©

2.5 еще альфа совсем...


turbouser   (2008-07-22 15:02:00) [19]


> DelphiN!   (22.07.08 14:55) [9]

См. [8]


PEAKTOP   (2008-07-22 15:01:00) [20]

> А можно ли проверить число ли в строке или нет? Только без ХП

Аналогично

SELECT  T1.*
FROM    table1 T1
WHERE  (T1.FIELD1 SIMILAR TO '[0-9]')


Страницы:   1 2

Наверх

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