передача многозначного параметра в хранимую процедуру - PullRequest
0 голосов
/ 10 марта 2011

У меня проблемы с передачей нескольких параметров в хранимую процедуру отчета Crystal. У меня есть хранимая процедура, которая работает нормально, если параметр? StockNumber имеет одно значение. Когда я пытаюсь изменить его на многозначное 2, происходит следующее: показывает ли оно сообщение: «Эти хранимые процедуры не могут принимать несколько значений». или если попытаться напрямую включить параметр в процедуре для принятия нескольких значений, он просто закрывает приложение без ошибок. Насколько я понимаю, это ограничение хранимых процедур, а не кристальных отчетов. В любом случае мне нужно это исправить. Я просто не знаю, как манипулировать параметрами в среде Crystal Reports. пожалуйста, обсудите. Спасибо!

   SELECT 
      "table1"."StockNum"
      , "table1"."StockOnhand"
      , "table1"."StockNumber"
      , "table1"."StockLocation"
      ,"table2"."StockDesc"
      ,"table2"."StockDesc2"
      , "TotalSoldItems"."SoldItems"
    FROM   
      "AAG1"."DB2"."table1" "table1"
    LEFT JOIN
    (
    SELECT 
      SUM ("StockNumAA"."StockNumQuantity") "SoldItems"
      , "StockNumAA"."from"
    FROM    
      "AAG1"."DB2"."StockNumAA" "StockNumAA"
    WHERE  "StockNumAA"."code"='BB' 
      AND "StockNumAA"."StockNumber" = '{?3PartNumber}'
      AND ("StockNumAA"."date">={?1StartDate}
      AND "StockNumAA"."date"<={?2EndDate})
    GROUP BY 
       "StockNumAA"."from"
     ) "TotalSoldItems"
    ON "table1"."StockLocation" = "TotalSoldItems"."from"
    LEFT JOIN 
    "AAG1"."DB2"."table2" "table2"
    ON "table1"."StockNumber" = "table2"."Stocknumber"
    WHERE "table1"."StockNumber" = '{?Stocknumber}'

1 Ответ

3 голосов
/ 10 марта 2011

Я не эксперт по Crystal Reports, но обычно при попытке передать многозначное значение хранимой процедуре в SQL принятым методом является передача его в виде строки с разделителями-запятыми, например

 item1, item 2, item 3

Тогда вы простонаписать функцию, которая может разделить их запятой и вернуть набор.

Редактировать: Опять же, я ничего не знаю о отчетах о кристаллах, но я провел небольшое исследование и нашел выдержку из другого форума.В нем обсуждается, как использовать множественный идентификатор в качестве строки с разделителями-запятыми:

Если ваш многозначный параметр имеет тип string, вы можете поместить его в определение формулы плоского параметра

{flattened_parameter}: 
Join({?YourMultiValueParameter},",") 
e.g. {?YourMultiValueParameter}[1] = US 
{?YourMultiValueParameter}[2] = Canada 
{?YourMultiValueParameter}[3] = UK 
=> {flattened_parameter} = US, Canada, UK 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...