Pregunta

Mi procedimiento almacenado se llama como debajo de un SQL instegartion paquete dentro de SQL Server 2005

EXEC ?= Validación.PopulateFaultsFileDetails ?, 0

Aunque no estoy seguro de qué ?significa

¿Fue útil?

Solución

Cuando esta declaración SQL se llama, ambos signos de interrogación (?) va a ser reemplazado.La primera será reemplazado por una variable que recibirá el valor de retorno del procedimiento almacenado.El segundo será reemplazado por el valor que se pasa en el procedimiento almacenado.El código a utilizar esta declaración se verá algo como esto (pseudocódigo):

dim result
SQL = "EXEC ? = Validation.PopulateFaultsFileDetails ? , 0"
SQL.execute(result, 99)    // pass in 99 to the stored proc
debug.print result

Esto le ofrece 3 ventajas:

  1. usted puede volver a utilizar los mismos bits de SQL con diferentes valores
  2. usted puede recoger el valor devuelto y prueba de éxito/error
  3. si el valor que está pasando es una cadena, debe ser correctamente escape para ti, reducir el riesgo de vulnerabilidades de inyección SQL en la aplicación.

Otros consejos

El ?destaca foros variable, para ser precisos, un parámetro.A la primera ?es el valor de retorno de la almacenan prcoedure y el segundo es el primer parámetro del procedimiento almacenado

Gracias agradezco la respuesta.

Yo era capaz de ejecutar con éxito el procedimiento almacenado utilizando DECLARE @FaultsFileName varchar DECLARE @FaultsFileID int EXEC @FaultsFileID = Validación.PopulateFaultsFileDetails 'SameMonth Test.txt' , @FaultsFileID SELECT @FaultsFileID

Pero cuando me pase el parámetro de entrada como 'SameMonth Test.txt" en el Paquete de Integración me sale un error que dice:

Los nombres de los parámetros no pueden ser una mezcla de ordinal y tipos con nombre.".Posibles razones de la falla:Problemas con la consulta "ResultSet" la propiedad no está configurado correctamente, los parámetros no se establece correctamente, o la conexión no establecida correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top