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

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

Язык по SQL и может быть по Интербейсу... [D5, IB5.x]


БАА ©   (2003-02-12 23:40:00) 

select isnull(Code, "()"), Phone from clientphones...аналог этого же самого в Интербейс 5.х, ошибка на неизвестную команду...Или хотя бы вариант конкатенции двух строк, одна из которых пустая. Пример:
select "(" || Code || ")" || PHONE from clientphones,
где одна из строк может быть пустой(вернее null)...Спасибо за сотрудничество


perov   (2003-02-14 09:22:00) [1]

или переходить на более новые версии, там есть функция iif


AlexSerp   (2003-02-14 08:56:00) [2]

А напишите процедурку, где и сравнивайте на NULL полученное значение.
А потом, если IS NULL , то присвойте нужной переменной пустую строку.

for select Code, PHONE
from clientphones
into :code, :phone
do begin
if (code is null) then code ="";
result ="(" || Code || ")" || phone;
end


или

for select Code, PHONE
from clientphones
into :code, :phone
do begin
if (code is null) then
result ="()" || phone;
else
result ="(" || Code || ")" || phone;
end


Саня


OlegN   (2003-02-14 00:11:00) [3]

Ну допустим что встроенных функций нет, но вот IS [NOT] NULL все таки есть, только пишется раздельно :-)

Здесь насколько я понял проблема у IB именно в пустой строке...
Если строки не пустые, то "(" || Code || ")" сработает, а вот с пустой мне так и не удалось решить - в результате всегда получаем пустую строку


kaif   (2003-02-13 02:13:00) [4]

В IB нет встроенных функций. Можно функцию isnull написать для UDF (свою dll сделать). ИМХО, это наилучший выход.


Наверх

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