![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с хранимой процедурой
thvfrjd © (2006-03-15 12:20:00)Имеется процедура на SQL сервере
CREATE PROCEDURE [dbo].[listkl]
@p char
AS
select * from klint where name like @p
GO
Если я присваиваю параметру значение наподобие '%фыкгам%' она почему то возвращает все записи, а если на самой СУБД такой запрос выполнить вроде правильно работает. Что может быть?
Ega23 (2006-03-15 14:29:00) [1]просто varchar може по умолчанию считаться как varchar(1) (это вроде, при входных параметрах в ХП), а также в некоторых случаях как varchar(32) (по-моему, при Cast)
thvfrjd (2006-03-15 14:00:00) [2]varchar(10) и все четко :)
thvfrjd (2006-03-15 13:57:00) [3]Если указывать char(5) допустим и в качестве параметра вводить именно пять символов чтобы потом пробелы не добавлялись то все нормально работает а вот с varchar почему то все строки выводит
thvfrjd (2006-03-15 13:48:00) [4]
> @p char
> это то же, что
> @p char(1)
Я и varchar пробовал и кавычки значение параметра ввожу в редакторе Delphi все равно вводит все строки
BoxTer (2006-03-15 13:27:00) [5]В качестве параметра с клиента передавай строку типа:
''''+MyStringParam+''''
т.е. попробуй передать апострофы в начале и в конце параметра
MOA (2006-03-15 13:27:00) [6]@p char
это то же, что
@p char(1)
BOL:
char[(n)]
When n is not specified in a data definition or variable declaration statement, the default length is 1.
Т.е. оператор у Вас такой:
select * from klint where name like "%"
(остальная часть строки обрезана) 0 ну и выводит все, как сказано.
Удачи!
thvfrjd (2006-03-15 12:34:00) [7]и char и varchar пробовал. А значение параметра пробовал даже вытавлять в конструкторе Delphi
stone (2006-03-15 12:27:00) [8]хотя не факт, не достаточно исходной информаци
stone (2006-03-15 12:25:00) [9]
> Что может быть?
@p char
замени на varchar