FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
si no me equivoco, cuando haces:
Código:
Con1:=Con1+ Condiciona(Con1)+'Upper(Cli."Nombre") Like '+'%'+ UpperCase(EdtBuscar2.Text)+'%'; Código:
Unit Sysutils Category String handling routines function QuotedStr(const S: string): string; |
#3
|
|||
|
|||
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 |
|
|
|