Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2003
IcebergDelphi IcebergDelphi is offline
Miembro
 
Registrado: May 2003
Ubicación: VillaFlores, Chiapas, Mexico
Posts: 81
Poder: 16
IcebergDelphi Va por buen camino
Por que no me funciona esta consulta SQL en mi programa?

Hola amigos del foro , estoy haciendo un simple programa de consulta de clientes, y lo estoy haciendo en Firebird, lo que pasa que como son miles de clientes, tengo que hacer un filtro con sql solo mostrandolos por su Numero de alta o por su Nombre.
En Mi formulario tengo dos campos Tedit, uno se llama:
EdtBuscar y Edt Buscar2, el primero buscara el Numero de alta del cliente y el segundo en nombre, el codigo va asi:

procedure TForm1.Button1Click(Sender: TObject);
Var
Buscar,Con1:String;
Function Condiciona(Entrada:String):String;
Var
Temporal:String;
Begin
Temporal:='';
If (Length(Entrada)>0) Then
Temporal:='Or ';
Condiciona:=Temporal;
End;
begin
Buscar:='Select * From "Clientes" Cli ' ;
If Length( EdtBuscar.Text)>0 Then
Con1:='Cli."NoCliente" ='+ EdtBuscar.Text+''
Else
Con1:='';
If Length( EdtBuscar2.Text)>0 Then
Con1:=Con1+ Condiciona(Con1)+'Upper(Cli."Nombre") Like '+'%'+ UpperCase(EdtBuscar2.Text)+'%';
If Length(Con1)>0 Then
Buscar:=Buscar +' Where '+Con1;
TClientes.Close;
TClientes.SQLs.SelectSQL.Clear;
TClientes.SQLs.SelectSQL.Add(Buscar);
TClientes.Prepare;
TClientes.GenerateSQLs;
TClientes.Open;

end;

El Campo de la Bd NoCliente es Numerico, y si hago una consulta escribiendo sobre el TEdit Llamado EdtBuscar la consulta se realiza perfectamente, pero cuando quiero hacer la consulta por Nombre , escribiendo un Nombre o letra en el Tedit llamado edtBuscar2 me sale errores que si el % no lo conoce, que si el campo ( El dato que se escribio dentro del EdtBuscar2) es una columna desconocida ect. cabe recordar que el campo nombre es varchar en mi base de datos.

Me podrian ayudar a desifrar que esta pasando o cual es mi error en la instruccion sql.

Sera que no puede evaluar los campos de tipo Varchar?

Gracias.
__________________
IcebergDelphi
LIA. Hiber tadeo Moreno Tovilla. INITEC Software
Responder Con Cita
  #2  
Antiguo 08-09-2003
Angel Angel is offline
Miembro
 
Registrado: May 2003
Ubicación: Alicante, España
Posts: 58
Poder: 16
Angel Va por buen camino
si no me equivoco, cuando haces:

Código:
Con1:=Con1+ Condiciona(Con1)+'Upper(Cli."Nombre") Like '+'%'+ UpperCase(EdtBuscar2.Text)+'%';
despues de like tendras que poner +''''+ y al final +'''' para insertar comillas puesto que al estar buscando una cadena, dicha cadena en SQL debe estar entre comillas. Otra cosa que tambien creo que funciona es utilizando una función de pascal llamada quotedStr (cadena)

Código:
Unit                      Sysutils
Category              String handling routines

function QuotedStr(const S: string): string;
Responder Con Cita
  #3  
Antiguo 15-09-2003
IcebergDelphi IcebergDelphi is offline
Miembro
 
Registrado: May 2003
Ubicación: VillaFlores, Chiapas, Mexico
Posts: 81
Poder: 16
IcebergDelphi Va por buen camino
Gracias Amigo por tu ayuda pero fijate que pasa algo extraño, en una maquina diferente en donde tambien tiene Delphi , la instruccion que expuse en el problema si funciona, pero intentare hacer el consejo que me dices, ya que ahorita no tengo mucho tiempo, muchisimas gracias.
__________________
IcebergDelphi
LIA. Hiber tadeo Moreno Tovilla. INITEC Software
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


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


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