Ayuda SAP

Parametros de un Stored Procedure en Query Manager

Tengo un problema mas bien no se como escribirlo en el query manager
tengo un SP que funciona muy bien en SQL y al correr la funcion exec [dbo].[SP_OCUPACION] fecha1, fecha2, unidad, numero en sql funciona
pero no se como hacer para ingresarlo en el query manager y que los usuarios finales puedan ingresar los parámetros

pues leyendo por ahi encontre lo siguiente
declare @d1 date, @d2 date, @d3 varchar(2), @d4 Int

set @d1=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%0]')
set @d2=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 where T0.DocDate=*/'[%1]')
set @d3=(/*select top 1 T1.ItemCode from  [dbo].[OITM] T1 where T1.ItemCode=*/'[%2]')
set @d4 = ?
exec [dbo].[SP_OCUPACION] @d1,@d2,@d3,@d4

y pues como tres de los cuatro parámetros pertenecen a información de tablas solicita los tres primeros
el cuarto que es un numero que debe de colocar el usuario no pertenece a ninguna tabla como tal no se como agregarlo y al hacerlo set@d4 = '[%3]'
da error

  1. [Microsoft][SQL Server Native Client 10.0][SQL Server]Sintaxis incorrecta cerca de ‘$76.1.1’.
  2. [Microsoft][SQL Server Native Client 10.0][SQL Server]No se puede preparar la instrucción o instrucciones. ‘Acuerdo global’ (OOAT)

cual es la expresion para solicitud de variables en los parametros para un SP que se quiere correr desde el query manager

Gracias por la ayuda

mandragoran14 la forma en que lo realice fue así

/*SELECT * FROM OMRC T9*/
DECLARE @Marca VarChar(30)
/* WHERE */
SET @Marca = /* T9.FirmName */  '[%0]'

Execute Analisisstockcompra @Marca

Analisisstockcompra es mi SP

1 me gusta

@Sergio_Perez
si encontre esta forma que tu dices pero el problema es que esta variable es un cantidad aleatoria que el usuario final ingresa y al no pertenecer a ninguna tabla la clausala me da este error

[Microsoft][SQL Server Native Client 10.0][SQL Server]Sintaxis incorrecta cerca de '$76.1.1'.
[Microsoft][SQL Server Native Client 10.0][SQL Server]No se puede preparar la instrucción o instrucciones. 'Acuerdo global' (OOAT)

GRACIAS POR TU AYUDA

Hola estimado.
Lo que te sugiero que hagas es:
Como lo que necesitas es que el usuario ingrese un numero XX podrías hacer algo así:

set @d4=(/*select top 1 T1.docnum from  [dbo].[OINV] T1 where T1.docnum=*/'[%3]')

La parte correspondiente a:
(/select top 1 T1.docnum from [dbo].[OINV] T1 where T1.docnum=/

Solo te servirá como un puente para tomar el valor en tu variable @d4

Como una alternativa, tambien podrías hacerlo, en SAP, de la siguiente forma:

select @d4=(select a.docnum from dbo.oinv a where a.docnum='[%3]')

Probá y espero te sirva.
Saludos.

Prueba de la siguiente manera, me ha funcionado haciendo algunas pruebas:
declare @d1 date, @d2 date, @d3 varchar(2), @d4 int

set @d1=(/*select top 1 T0.DocDate from [dbo].[OINV] T0
 where T0.DocDate=*/'[%0]')

set @d2=(/*select top 1 T0.DocDate from [dbo].[OINV] T0 
where T0.DocDate=*/'[%1]')

set @d3=(/*select top 1 T1.ItemCode from  [dbo].[OITM] T1 
where T1.ItemCode=*/'[%2]')

set @d4=(/*select top 1 T1.Number as número from  [dbo].[OITM] T1 
where T1.Number=*/'[%3]')

Select @d1,@d2,@d3 ,@d4

Seguimos pendientes.

1 me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.