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

#6 Maxi
05/11/2006 - 17:03 | Informe spam
Hola, a ver, si estas usando SQL-dinamico para estas querys dinamicas
asegurate que la cadena del WHERE venga bien porque no haces que la
aplicacion lo envie de forma correcta?


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
wrote in message
news:
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

Respuesta Responder a este mensaje
#7 Alejandro Mesa
06/11/2006 - 14:42 | Informe spam
Jose,

Hay dos formas muy usadas que pueden ser aplicadas en este tipo de
situaciones, la una es programar el procedimiento de forma tal que acepte una
busqueda dinamica y la otra es usar sql dinamico. Te paso un link de ambos
metodos.

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

Dynamic Search Conditions in T-SQL
http://www.sommarskog.se/dyn-search.html


AMB

"" wrote:

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
#8 Abraxas
06/11/2006 - 19:14 | Informe spam
Ovbiamente tu error no esta en el lado del Cliente (Formulario) si no
en el lado del Servidor aunque por caulquier cosa "Inspecciona" el
valor de la Variable en el formularioo si no dale un debug.print CADENA
o un Msgbox CADENA, no soy experto en Procedimientos (de hehco en nada)
pero asegurate que la variable que recibe el valor sea de tipo string,
o si no hazle una conversion de tipos Forzada
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida