SQL - SP's

¿Cómo puedo hacer un SP y que me tome variables?
Me explico. En php tengo ciertas variables, pero no se como guardar esas variables en SP o en SQL para luego ocuaparlas. Por ejemplo:
$info = mssql_query("SELECT * FROM liquid WHERE (LI_RUT = '$rutS') and (LI_DV = '$rutfS') ORDER BY LI_ANOMES DESC");
$rutS y $rutfS son las variables asi que creo el SP asi:
CREATE PROCEDURE liquido AS
SELECT * FROM liquid WHERE (LI_RUT = '$rutS') and (LI_DV = '$rutfS') ORDER BY LI_ANOMES DESC
Y la sintaxis esta correcta. Pero luego cuando voy a ver la página me arroja esto:
Warning: mssql_query(): message: Error de sintaxis al convertir el valor varchar '$rutS' para una columna de tipo de datos int. (severity 16)
¿Como lo puedo solucionar?
Gracias! =)

2 Respuestas

Respuesta
1
Checa las siguientes ligas:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_create_4hk5.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/howtosql/ht_7_design_11h5.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/createdb/cm_8_des_07_7yw5.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconcreatenewqueryusingdesigner.asp
Respuesta
1
Si tu procedimiento necesita usar variables, tienes que declararlas en el encabezado, para que sql lo sepa. Seria algo así:
CREATE PROCEDURE liquido @var1 int, @var2 int AS
SELECT * FROM liquid WHERE (LI_RUT = @var1) and (LI_DV = @var2) ORDER BY LI_ANOMES DESC
Tu problema esta en que sql ejecuta el procedimiento tal y como tu lo escribes y por tanto '$rutS' representa para sql una cadena de caracteres y no una variable. Como el tipo de todos de LI_RUT sera int, te da un fallo en la conversión implícita que intenta realizar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas