Procedimiento Almacenado

01/02/2006 - 09:42 por Lope | Informe spam
Estoy empezando con los procedimientos almacenados y he hecho uno
que teóricamente debería mostrar todos los registros que contengan en el
campo "Nombre" una cadena que se le pasa como parámetro. El caso es que
no lo hace bien, devuelve unos sí y otros no, y no sé si el error está
en el propio procedimiento o en la llamada.

El procedimiento es el siguiente:

-
ALTER PROCEDURE dbo.LN_Cliente

(
@Texto varchar (20)
)
AS
SELECT *
FROM Clientes
WHERE Clientes.Nombre Like '%' + @Texto + '%'
ORDER BY Clientes.Nombre
RETURN
-

¿Hay algo mal?

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
01/02/2006 - 10:09 | Informe spam
Yo no veo nada mal en ese procedimiento (más allá de que se va a
recorrer toda la tabla para devolver los registros encontrados). ¿Por qué
dices que no te devuelve todos los registros que debiera? ¿Has probado a
ejecutar esa misma consulta en el analizador de consultas?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Lope" escribió en el mensaje
news:
Estoy empezando con los procedimientos almacenados y he hecho uno
que teóricamente debería mostrar todos los registros que contengan en el
campo "Nombre" una cadena que se le pasa como parámetro. El caso es que
no lo hace bien, devuelve unos sí y otros no, y no sé si el error está
en el propio procedimiento o en la llamada.

El procedimiento es el siguiente:

-
ALTER PROCEDURE dbo.LN_Cliente

(
@Texto varchar (20)
)
AS
SELECT *
FROM Clientes
WHERE Clientes.Nombre Like '%' + @Texto + '%'
ORDER BY Clientes.Nombre
RETURN
-

¿Hay algo mal?
Respuesta Responder a este mensaje
#2 Lope
01/02/2006 - 10:40 | Informe spam
Carlos Sacristán escribió:
Yo no veo nada mal en ese procedimiento (más allá de que se va a
recorrer toda la tabla para devolver los registros encontrados). ¿Por qué
dices que no te devuelve todos los registros que debiera? ¿Has probado a
ejecutar esa misma consulta en el analizador de consultas?



Sí, y sale bien. Me temo que el problema esté en el lado del código del
programa. Gracias.
Respuesta Responder a este mensaje
#3 Carlos Sacristán
01/02/2006 - 11:11 | Informe spam
Seguramente el valor del parámetro sea diferente al que tú esperas.
Compruébalo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Lope" escribió en el mensaje
news:
Carlos Sacristán escribió:
> Yo no veo nada mal en ese procedimiento (más allá de que se va a
> recorrer toda la tabla para devolver los registros encontrados). ¿Por


qué
> dices que no te devuelve todos los registros que debiera? ¿Has probado a
> ejecutar esa misma consulta en el analizador de consultas?

Sí, y sale bien. Me temo que el problema esté en el lado del código del
programa. Gracias.
Respuesta Responder a este mensaje
#4 Lope
01/02/2006 - 11:43 | Informe spam
He hecho el siguiente cambio:

-
ALTER PROCEDURE dbo.LN_Cliente

(
@Texto char (4)
)
AS
SELECT *
FROM Clientes
WHERE Clientes.Nombre Like '%' + @Texto + '%'
ORDER BY Clientes.Nombre
RETURN
-

Y he introducido como parámetro "mera", p. ej., y me da el resultado
correcto (todos los clientes que contienen "mera").

Sin embargo luego lo he cambiado por

@Texto char (20) 'El campo cliente es char (60)

Y me ha devuelto las filas que acaban con "mera" (una, en concreto).

Me da la sensación de que rellena lo que le "sobra" al parámetro con
espacios. ¿Podría ser? ¿Cómo solucionarlo?

Gracias.
Respuesta Responder a este mensaje
#5 Carlos Sacristán
01/02/2006 - 12:07 | Informe spam
Claro, en vez del tipo de parámetro CHAR, prueba con VARCHAR


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Lope" escribió en el mensaje
news:
He hecho el siguiente cambio:

-
ALTER PROCEDURE dbo.LN_Cliente

(
@Texto char (4)
)
AS
SELECT *
FROM Clientes
WHERE Clientes.Nombre Like '%' + @Texto + '%'
ORDER BY Clientes.Nombre
RETURN
-

Y he introducido como parámetro "mera", p. ej., y me da el resultado
correcto (todos los clientes que contienen "mera").

Sin embargo luego lo he cambiado por

@Texto char (20) 'El campo cliente es char (60)

Y me ha devuelto las filas que acaban con "mera" (una, en concreto).

Me da la sensación de que rellena lo que le "sobra" al parámetro con
espacios. ¿Podría ser? ¿Cómo solucionarlo?

Gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida