Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2013
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
SQL en componentes ADO

Hola,

me ha salido este problema:
Esta instrucción en Tquery, funciona perfectamente:
Código Delphi [-]
 Buscar.Active := False;
     Texto1:='Select Paciente,Tratamiento,Fecha,Importe,Haber,Importefactura,Fracc, observaciones from visitas where UPPER(Paciente) LIKE'''+'%'+UpperCase(Edit1.Text) + '%'''';
     Buscar.SQL.Clear;
      Buscar.SQL.Add(texto1);
       Buscar.Active:=True;

Pero no funciona en TADOQuery, ¿sabéis que es lo que debo de cambiar?.

Saludos
Responder Con Cita
  #2  
Antiguo 13-04-2013
Avatar de ginkaku
ginkaku ginkaku is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 59
Poder: 12
ginkaku Va por buen camino
Question

Perdona...Que error te sale? cuando lo activas no ejecuta tu sentencia? Que colocaste en sus propiedades del AdoQuery?
Responder Con Cita
  #3  
Antiguo 13-04-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.

El primer error que te generará esa línea es: Unterminated string, no lo corrijo por que me duele la cabeza de solo pensar en tanta comilla...

Mas simple resulta usar la función QuotedStr:
Código Delphi [-]
  with ADOQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT Paciente, Tratamiento, Fecha, Importe, Haber, Importefactura,' +
                'Fracc, observaciones FROM visitas WHERE UCASE(Paciente) LIKE ' +
                 QuotedStr('%' + UpperCase(Edit1.Text) + '%');
    Open;
  end;

Sin embargo es aconsejable que te acostumbres al uso de parámetros:
Código Delphi [-]
  with ADOQuery1 do
  begin
    Close;
    SLQ.Clear;
    SQL.Add('SELECT Paciente, Tratamiento, Fecha, Importe,');
    SQL.Add('Haber, Importefactura, Fracc, observaciones');
    SQL.Add('FROM visitas WHERE UCASE(Paciente) LIKE :PPACI');
    Parameters.ParamByName('PPACI').Value := '%' + UpperCase(Edit1.Text) + '%';
    Open;
  end;
Por último, cuando ejecutes la consulta, el segundo error lo provocará UPPER que deberás reemplazar por UCASE

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 13-04-2013
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Thumbs up

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

El primer error que te generará esa línea es: Unterminated string, no lo corrijo por que me duele la cabeza de solo pensar en tanta comilla...
Jajaja, y a mí!!!.

la primera me ha dado un error, pero la segunda opción ha funcionado!!! :
Código Delphi [-]
 with ADOQuery1 do
  begin
    Close;
    SLQ.Clear;
    SQL.Add('SELECT Paciente, Tratamiento, Fecha, Importe,');
    SQL.Add('Haber, Importefactura, Fracc, observaciones');
    SQL.Add('FROM visitas WHERE UCASE(Paciente) LIKE :PPACI');
    Parameters.ParamByName('PPACI').Value := '%' + UpperCase(Edit1.Text) + '%';
    Open;
  end;

, pero poniendo el texto del SQL directamente en la propiedad string del TADOQuery, si no tampoco, me sale un error de argumentos no válidos.

Solucionado, gracias Ecfisa.
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
componentes yevabas Varios 2 15-02-2011 18:17:25
Componentes Ocx mrh_peru OOP 0 27-03-2010 18:02:53
Componentes TCP/UDP JPMMVR Internet 8 13-04-2009 19:12:49
D7 + componentes dfarias Varios 6 31-08-2008 20:58:41
Componentes XP tgsistemas OOP 2 17-05-2004 14:28:08


La franja horaria es GMT +2. Ahora son las 06:50:18.


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