Pasar clausula Where como parametro

04/11/2006 - 20:17 por josecou | Informe spam
Hola a todos

Tengo un procedimiento almacenado que recibe como parametro la clausula
Where. Esto viene de un formulario de windows que dependiendo de las
opciones elegidas forma la clausula where. Pero tengo un problema, por
que la clausula where me la forma de la siguiente manera

"Where Nombre = jose"
y no deberia de ser asi, ya que me he dado cuenta de que cuando le
pasamo un cadena no me pone las comillas simples, deberia ser asi
Where Nombre = 'Jose'

Igual me pasa con los numeros. Como deberia crear la cadena.? Pienso
que deberia de ser algo asi, pero no se si es correcto "Where nombre 'jose'".

Muchas gracias

Jose

Preguntas similare

Leer las respuestas

#1 Abraxas
04/11/2006 - 20:47 | Informe spam
En que lenguaje estas programando?
Cuando hablas de un formulario,supongo que te refieres a uno que tu
mismo creaste con algun lenguaje de programacio, en visual basic se usa
asi

" where Nombre=" & "'" & txtnombre & "'"

ojo con -->>> "'"
Respuesta Responder a este mensaje
#2 josecou
04/11/2006 - 21:04 | Informe spam
Hola Abraxas

Gracias por contestar. Estoy programando con VB Net. Voy a probar a
ver que tal me sale.

Un saludo

Jose
Abraxas ha escrito:

En que lenguaje estas programando?
Cuando hablas de un formulario,supongo que te refieres a uno que tu
mismo creaste con algun lenguaje de programacio, en visual basic se usa
asi

" where Nombre=" & "'" & txtnombre & "'"

ojo con -->>> "'"
Respuesta Responder a este mensaje
#3 josecou
04/11/2006 - 21:31 | Informe spam
Hola Abraxas

Siento molestarte de nuevo pero es que me sigue dando error y no se por
que

el procedimiento es el siguiente

CREATE PROCEDURE ObtenerNombresBuscados
@Where VACHAR (8000)

AS

BEGIN
SELECT Id_Persona, Nombre, Apellidos, IdPais, IdPosicion
FROM Persona
+ @Where


END


y la cadena que creo para darla el valor al parametro @Where es la
siguiente

dim cadena as string ="WHERE "

if nombre <> string.empty then
cadena &= "nombre = " & "'" & Nombre & "'"
end if

donde nombre es una variable

y cuando ejecuto me da este error

Error de conversion al convertir el valor varchar "Where Nombre 'Javier'" al tipo de datos Int.

Por que puede ser.

Muchas gracias

Jose

ha escrito:

Hola Abraxas

Gracias por contestar. Estoy programando con VB Net. Voy a probar a
ver que tal me sale.

Un saludo

Jose
Abraxas ha escrito:

> En que lenguaje estas programando?
> Cuando hablas de un formulario,supongo que te refieres a uno que tu
> mismo creaste con algun lenguaje de programacio, en visual basic se usa
> asi
>
> " where Nombre=" & "'" & txtnombre & "'"
>
> ojo con -->>> "'"
Respuesta Responder a este mensaje
#4 cardoso.alisson
04/11/2006 - 22:59 | Informe spam
Olá
peço desculpas por escrever em português, não falo espanhol mas sou
um apaixonado por sql server.

Você pode fazer sua procedure da seguinte maneira

SELECT Id_Persona, Nombre, Apellidos, IdPais, IdPosicion
FROM Persona
WHERE NOME_COLUNA_A = COALESCE(@VAR_1, NOME_COLUNA_A)
AND NOME_COLUNA_B = COALESCE(@VAR_1, NOME_COLUNA_B)
AND NOME_COLUNA_C = COALESCE(@VAR_1, NOME_COLUNA_C)

Você pode passar os parametros escolhidos e os que não forem
escolhidos passe o valor NULL.
Abraços.

escreveu:

Hola Abraxas

Siento molestarte de nuevo pero es que me sigue dando error y no se por
que

el procedimiento es el siguiente

CREATE PROCEDURE ObtenerNombresBuscados
@Where VACHAR (8000)

AS

BEGIN
SELECT Id_Persona, Nombre, Apellidos, IdPais, IdPosicion
FROM Persona
+ @Where


END


y la cadena que creo para darla el valor al parametro @Where es la
siguiente

dim cadena as string ="WHERE "

if nombre <> string.empty then
cadena &= "nombre = " & "'" & Nombre & "'"
end if

donde nombre es una variable

y cuando ejecuto me da este error

Error de conversion al convertir el valor varchar "Where Nombre > 'Javier'" al tipo de datos Int.

Por que puede ser.

Muchas gracias

Jose

ha escrito:

> Hola Abraxas
>
> Gracias por contestar. Estoy programando con VB Net. Voy a probar a
> ver que tal me sale.
>
> Un saludo
>
> Jose
> Abraxas ha escrito:
>
> > En que lenguaje estas programando?
> > Cuando hablas de un formulario,supongo que te refieres a uno que tu
> > mismo creaste con algun lenguaje de programacio, en visual basic se usa
> > asi
> >
> > " where Nombre=" & "'" & txtnombre & "'"
> >
> > ojo con -->>> "'"
Respuesta Responder a este mensaje
#5 josecou
04/11/2006 - 23:10 | Informe spam
Hola

El problema es que la clausula Where, se la paso como parametro, por
que no se por que columna quieren filtrar el usuario. Puede filtrar por
la columna A, o por la B o por las dos. Por lo tanto pienso que la
clausula Where pasarsela como parametro.

De todas formas muchas gracias.

Un saludo

Jose
ha escrito:

Olá
peço desculpas por escrever em português, não falo espanhol mas sou
um apaixonado por sql server.

Você pode fazer sua procedure da seguinte maneira

SELECT Id_Persona, Nombre, Apellidos, IdPais, IdPosicion
FROM Persona
WHERE NOME_COLUNA_A = COALESCE(@VAR_1, NOME_COLUNA_A)
AND NOME_COLUNA_B = COALESCE(@VAR_1, NOME_COLUNA_B)
AND NOME_COLUNA_C = COALESCE(@VAR_1, NOME_COLUNA_C)

Você pode passar os parametros escolhidos e os que não forem
escolhidos passe o valor NULL.
Abraços.

escreveu:

> Hola Abraxas
>
> Siento molestarte de nuevo pero es que me sigue dando error y no se por
> que
>
> el procedimiento es el siguiente
>
> CREATE PROCEDURE ObtenerNombresBuscados
> @Where VACHAR (8000)
>
> AS
>
> BEGIN
> SELECT Id_Persona, Nombre, Apellidos, IdPais, IdPosicion
> FROM Persona
> + @Where
>
>
> END
>
>
> y la cadena que creo para darla el valor al parametro @Where es la
> siguiente
>
> dim cadena as string ="WHERE "
>
> if nombre <> string.empty then
> cadena &= "nombre = " & "'" & Nombre & "'"
> end if
>
> donde nombre es una variable
>
> y cuando ejecuto me da este error
>
> Error de conversion al convertir el valor varchar "Where Nombre > > 'Javier'" al tipo de datos Int.
>
> Por que puede ser.
>
> Muchas gracias
>
> Jose
>
> ha escrito:
>
> > Hola Abraxas
> >
> > Gracias por contestar. Estoy programando con VB Net. Voy a probar a
> > ver que tal me sale.
> >
> > Un saludo
> >
> > Jose
> > Abraxas ha escrito:
> >
> > > En que lenguaje estas programando?
> > > Cuando hablas de un formulario,supongo que te refieres a uno que tu
> > > mismo creaste con algun lenguaje de programacio, en visual basic se usa
> > > asi
> > >
> > > " where Nombre=" & "'" & txtnombre & "'"
> > >
> > > ojo con -->>> "'"
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida