![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 16
|
![]()
Добрый вечер.
Вот создаю процедуру поиска города, на выходе получают name города и его id create or alter procedure POICK_GOROD ( GOROD_NAME varchar(20)) returns ( ID_GOROD smallint, GOROD_NAME_N varchar(20)) as begin for select distinct gorod.id_gorod, gorod.gorod from gorod where gorod.gorod = :gorod_name into :id_gorod, :gorod_name_n do suspend; end но как модифицировать эту процедуру, что бы поиск был так: введу С, а мне выдается все города с С первой: Саратов, Санкт-Петербург... не знаю как синтаксически верно, куда подставить конструкцию like '%' Подскажите... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
с синтаксисом Firebird знаком слабо, так что может и не то (может кавычки и не нужны)
where gorod.gorod like ':gorod_name%'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 16
|
![]()
пробовала... если в кавычках, то понимает именно как значение = :gorod_name%
а без кавычек ошибка Invalid token... |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А так:
where gorod.gorod like :gorod_name+'%'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 16
|
![]()
тоже ошибка((
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. Dynamic SQL Error. expression evaluation not supported. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Тогда объявляйте в процедуре varchar переменную, присваивйте ей это выражение, и в запросе используйте эту переменную
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 16
|
![]()
create or alter procedure POICK_GOROD (
GOROD_NAME varchar(20)) returns ( ID_GOROD smallint, GOROD_NAME_N varchar(20)) as DECLARE VARIABLE gn varchar(30); begin gn=:gorod_name+'%' ; for select distinct gorod.id_gorod, gorod.gorod from gorod where gorod.gorod =:gn into :id_gorod, :gorod_name_n do suspend; end та же ошибка.. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
попробуйте так:
Код:
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
gn=gorod_name+'%' ; скорее всего так
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 16
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранимая процедура | Jrcfyf | БД в Delphi | 1 | 14.02.2012 18:45 |
Хранимая процедура | LizaVeta | БД в Delphi | 1 | 15.05.2010 10:42 |
Хранимая процедура. | Cartman18 | БД в Delphi | 21 | 08.05.2010 18:56 |
хранимая процедура | serg369 | SQL, базы данных | 4 | 07.02.2010 14:33 |
Хранимая процедура. | nimf | БД в Delphi | 2 | 22.04.2008 13:16 |