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

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

IB5.5 и хранимая процедура [IB5.x]


ManYury ©   (2003-03-25 12:59:00) 

Добрый день/вечер ...
Кто подскажет - почему не правильно работает нижеприведенная процедура :

CREATE PROCEDURE CHECKGERMANYCITY
RETURNS (
CITYFORINSERT CHAR (45))
AS
declare variable CityForCompare char(45);
BEGIN

/* Procedure body */
CityForCompare="B%";
for select EnglishCityName from City where ISOCountry="DE" and
EnglishCityName like :CityForCompare
into :CityForInsert
do
SUSPEND;
end


при таком запросе возвращается null если вместо like :CityForCompareнаписать like "B%"то все нормально ...


ManYury   (2003-03-25 15:33:00) [1]

Спасибо - помогло ...


Romkin   (2003-03-25 15:09:00) [2]

declare variable CityForCompare VARchar(45);
char дополняется пробелами


ManYury   (2003-03-25 14:17:00) [3]

To Johnmen результат тот же ...
И еще один вопрос - если результат null то выполняется ли код, который идет за doт.е. можно ли написать
do
begin
if (CityForInsert is null) then (что-то делаем)
end

- тоже что-то не хочет выполняться ...
P.S. если первый код прогнать в отладчике IBManager то все выполняется как надо, если просто выполнить то null -((


Johnmen   (2003-03-25 13:32:00) [4]

А так ?
like """||:CityForCompare||"""


manYury   (2003-03-25 13:19:00) [5]

Это не выход - т.к. необходимо использовать имено like(в процедуре идет сравнение) ...


Карелин Артем   (2003-03-25 13:10:00) [6]

Попробуй
CityForCompare="b"
EnglishCityName starting with :CityForCompare
В Firebird такое работает.


Наверх

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