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 24-09-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
StringReplace()

Estimados

Muy buenos días, tengo un objeto TQuery con una consulta, a la cual le debo agregar una condicion dependiendo de lo que selecciona el usuario mediante un check.

dentro del codigo agrego lo siguiente
Código SQL [-]
Select  ..... ... #Condicion_1_a_Incluir# ... #Condicion_2_a_Incluir# ......

al momento de llamar al TQuery se realiza lo siguiente
Código Delphi [-]
Query.SQL.Text:=StringReplace(Query.SQL.Text,'#Condicion_1_a_Incluir#',Condicion1,[rfReplaceAll]);          
Query.SQL.Text:=StringReplace(Query.SQL.Text,'#Condicion_2_a_Incluir#',Condicion2,[rfReplaceAll]);
en donde condicion1 y condicion2 esta definido como una variable de tipo string con un texto sql, pero en tiempo de ejecucion la funcion StringReplace no cambia el valor de '#Condicion_1_a_Incluir# por lo contenido en Condicion1

Desde ya mucha gracias por su ayuda
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......

Última edición por Casimiro Notevi fecha: 24-09-2013 a las 16:00:53.
Responder Con Cita
  #2  
Antiguo 25-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Alejandro.

En mi caso funciona correctamente, ¿ Seguro que buscas la cadena indicada ?

Te pongo un ejemplo simple donde la cadena inicial es reemplazada sin problemas:
Código Delphi [-]
var
  Condicion1 : string;
begin
  // Valor inicial
  Query.SQL.Text := 'SELECT * FROM TABLA WHERE #Condicion_1_a_Incluir#';
  // Mostrar valor inicial
  ShowMessage('VALOR INICIAL: ' + Query.SQL.Text);

  // Darle un valor a Condicion1
  Condicion1 := 'NOMBRE = ''JUAN''';

  // Reemplazar
  Query.SQL.Text := StringReplace(Query.SQL.Text, '#Condicion_1_a_Incluir#', Condicion1, [rfReplaceAll]);
  // Mostrar nuevo valor
  ShowMessage('NUEVO VALOR: '+Query.SQL.Text);
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 25-09-2013 a las 06:16:36.
Responder Con Cita
  #3  
Antiguo 25-09-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Estimado

Gracias por responder, pero la consulta se encuentra dentro de SQL (TStrings) del TQuery, y ahí es donde tengo el problema ya que no esta funcionando StringReplace como muestra tu ejemplo.

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #4  
Antiguo 25-09-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Estimado

Muchas gracias por tu ayuda el error ya lo encontre y radica en el espacio en blanco después de la coma:

Mi consulta

Código Delphi [-]
Query.SQL.Text:=StringReplace(Query.SQL.Text,'#Condicion_1_a_Incluir#',Condicion1,[rfReplaceAll]);


Tu Consulta
Código Delphi [-]
Query.SQL.Text:=StringReplace(Query.SQL.Text, '#Condicion_1_a_Incluir#', Condicion1, [rfReplaceAll]);


Notese que en la función StringReplace luego de cada coma existe un espacio en blanco y de esa manera finalmente se logra reemplazar '#Condicion_1_a_Incluir#' por el valor de la variable Condicion1

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #5  
Antiguo 25-09-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Seguro que es eso?
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
StringReplace no funciona Paulao Varios 1 06-07-2011 21:04:35
StringReplace (posicionamiento cursor) jymy788 Varios 2 13-08-2007 11:48:27
Problema con StringReplace NeoTrooper Varios 2 31-07-2007 16:21:03
Error con StringReplace... FunBit Varios 8 15-11-2006 18:18:40


La franja horaria es GMT +2. Ahora son las 18:46:59.


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