Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не правильно работает хранимая процедура  [new]
keizer08
Member

Откуда:
Сообщений: 4
Есть хранимая процедура:

CREATE PROCEDURE dbo.getDetInfo

@GOODID INT

AS
select T.MatKB
     , T.Name
     , T.TASKLIST_ID
     , T.OBOZN
     , T.ID AS TASK_ID
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= 'ПФ.7134.00.00.00'
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Когда я на прямую передаю строку 'ПФ.7134.00.00.00' - все работает


CREATE PROCEDURE dbo.getDetInfo
(
@GOODID INT,
@DNAME VARCHAR
)
AS
select T.MatKB
     , T.Name
     , T.TASKLIST_ID
     , T.OBOZN
     , T.ID AS TASK_ID
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= @DNAME
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Вот в таком варианте когда строка 'ПФ.7134.00.00.00' передается через аргумент... сревнение проходит неудачно и процедура возвращает пустой ответ. Ч так догадываюсь что передачи строки через аргумент происходит какое то ее преобразование... но какое и как я не знаю. Что делать?

Я новичек... сильно не ругайте.
26 июл 12, 10:39    [12918064]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
keizer08
Member

Откуда:
Сообщений: 4
Сделал кучу ошибок в посте... как поправить не нашел))) надеюсь поймете)
26 июл 12, 10:42    [12918080]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
VARCHAR = VARCHAR(1)
26 июл 12, 10:43    [12918084]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
qwerty112
Guest
keizer08,

это
@DNAME VARCHAR

==
@DNAME VARCHAR(1)

поставьте размер у переменной такой как у поля Obozn в таб.TASK
26 июл 12, 10:43    [12918085]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
если что-то не работает в сравнении удобно в SELECT поместить рядом сравниваемые величины и сравнить визуально
select 
@GOODID AS VAR_GOODID,
L.GOOD_ID,
T.Obozn,
@DNAME AS VAR_DNAME
     
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= @DNAME
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Многоие вопросы отпадают сами собой
26 июл 12, 10:48    [12918127]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
design21
если что-то не работает в сравнении удобно в SELECT поместить рядом сравниваемые величины и сравнить визуально
select 
@GOODID AS VAR_GOODID,
L.GOOD_ID,
T.Obozn,
@DNAME AS VAR_DNAME
     
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= @DNAME
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Многоие вопросы отпадают сами собой


Только условия WHERE убрать.
26 июл 12, 10:50    [12918140]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
design21
design21
если что-то не работает в сравнении удобно в SELECT поместить рядом сравниваемые величины и сравнить визуально
select 
@GOODID AS VAR_GOODID,
L.GOOD_ID,
T.Obozn,
@DNAME AS VAR_DNAME
     
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= @DNAME
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Многоие вопросы отпадают сами собой


Ага, а потом просматривать 100 млн строк. Вот красота. И главнео что информативно очень.

Только условия WHERE убрать.
26 июл 12, 10:51    [12918148]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
keizer08
Member

Откуда:
Сообщений: 4
qwerty112,

дело в том что длинна этой строки меняется от запроса к запросу... но максимальная длинна выставлена 60... поправил на:

CREATE PROCEDURE dbo.getDetInfo
(
@GOODID INT,
@DNAME VARCHAR(60)
)
AS
select T.MatKB
     , T.Name
     , T.TASKLIST_ID
     , T.OBOZN
     , T.ID AS TASK_ID
from TASK T, TASKLIST L
where T.TASKLIST_ID=L.ID
  and T.Obozn= @DNAME
  and L.GOOD_ID= @GOODID
  and (L.ACTIVE= 0
  or 0 =1)


Результат тот же... Сейчас буду пробовать совет от design21
26 июл 12, 10:57    [12918199]     Ответить | Цитировать Сообщить модератору
 Re: не правильно работает хранимая процедура  [new]
keizer08
Member

Откуда:
Сообщений: 4
Все, разобрался... всем спасибо) Замечательный форум.
26 июл 12, 11:46    [12918555]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить