Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
concatenar un parametro a un select en un Store procedure ... ?

HOla a todos .. se podra hacer esto ? ....

Desde delphi llamo a un StoreProc de Sql2000 con varios paramentros ...
uno de ellos es un string con contiene por ejemplo
@parametro2= ' and CAMPO2='HOLA' '

Dentro del SP tengo definido un select .. por ejemplo

Código:
set @var1= (Select XX  from TABLA where CAMPO1='1')
Ahora bien .. le quiero AGREGAR como condicion el string que viene en el parametro .. cosa que quede :

Código:
set @var1=(Select XX from TABLA where CAMPO1='1' and CAMPO2='HOLA')
peero estimo que no puedo hacer algo tan simple como

Código:
set @var1=(select XX from TABLA where CAMPO='1' +@parametro2)
porque lo concatena al '1' y no lo evalua como condicion ....
y si encierro la primera condicion entre parentesis me da error de sintaxis..

Gracias a todos por su tiempo y ayuda
sds
Responder Con Cita
  #2  
Antiguo 15-04-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por ingel Ver Mensaje
Código:
set @var1=(select XX from TABLA where CAMPO='1' +@parametro2)
En este caso, @parametro2 contendría "and CAMPO2='HOLA'" ?...

Si es así hay dos formas de hacerlo:
  1. mediante un SQL Dinámico, algo que suele ser bastante inóptimo, ya que el motor deberá compilar el código del procedure mas el código dinámico por separado. Es muy útil cuando la consulta cambiará radicalmente.
  2. Mediante un campo que si es nulo o tiene cierto valor no lo tomes en cuenta, por ejemplo:
    Código SQL [-]
    set @var1=(select XX from TABLA where CAMPO='1' AND (@parametro2 IS NULL OR CAMPO2 = 'HOLA')


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 15-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
no da error pero ...

Hola Federico ...
Estoy probando lo que me sugeris en el Query analizer ...
el codigo quedo algo asi ....

Código SQL [-]
declare @var varchar(50)
declare @res varchar(10)

set @var = ' and EMPLEADO=158'

set @res=  ( select top 1 CARACTER from TABLA where  serie='A' 
and (@var IS NULL ))
print @res

pero @var No es Null ...

yo necesitaria solo :

Código SQL [-]
set @res=  ( select top 1 CARACTER from TABLA where  serie='A' 
and (@var ))

... pero da error ...

Gracias...
Responder Con Cita
  #4  
Antiguo 15-04-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
En ese caso yo me refería a hacer una solución de este tipo:
Código SQL [-]
declare @emp BigInt
declare @res varchar(10)

set @emp = 158

set @res=  ( select top 1 CARACTER from TABLA where  serie='A' 
and (@emp IS NULL OR EMPLEADO = @emp ))
print @res

Entonces si quieres que se evalúe la condición, debes pasarle el id de empleado, sino se lo pasas como NULL.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 16-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
HOla...
Lo que pasa Federico es que en realidad lo que varia es la condicion de WHERE , no es que le paso solo el valor del parametro.. supone .. a veces es :

Where "grupo = 1 or grupo = 2"

otra es :

where "especialidad = 1 and grupo = 3 and zona=4"

ese WHERE lo armo desde el programa delhpi y lo paso ENTERO como
parametro (campos+valores SIN la palabra WHERE porque en el SP tengo otras condiciones ) ... entonces esto que le paso se lo quiero AGREGAR para que lo evalue junto con la condicion original del select ..

Sds . Gracias por tu ayuda !
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
puntero a un procedure en un procedure como parametro fcios Varios 2 14-03-2009 03:41:22
tipo de dato para pasar parametro a un store procedure Bracus SQL 6 25-03-2008 13:38:13
Store procedure sancarlos MySQL 3 30-01-2008 19:51:49
Store Procedure en Select fjcg02 Firebird e Interbase 5 01-01-2008 22:12:05
Problema con entrecomillado en sentencia select in dentro de un Store Procedure Caballero Negro MS SQL Server 3 12-01-2007 02:46:37


La franja horaria es GMT +2. Ahora son las 21:37:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi