Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Question Error al Filtrar un Campo Autonumerico

No puedo abrir el Filtro en un campo autonúmerico, puedo filtrar cualquier otro, pero cuando intento el mismo código con el campo autonúmerico me da error.

El código del filtro es este:
Código Delphi [-]
if EBuscar.Text <> EmptyStr then
  begin
      DM.ADbuscarclientes.Filtered:=False;
      DM.ADbuscarclientes.Filter:='Codigo like '+QuotedStr('%'+ EBuscar.Text + '%');
      DM.ADbuscarclientes.Filtered:=True;
  end
  Else
  begin
      DM.ADbuscarclientes.Filtered:=False;
  end;

Adotable.

Saludos!
Responder Con Cita
  #2  
Antiguo 09-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Si el campo es numérico ¿porque lo filtras como si fuera texto?


Y ¿Cual es el error que te da?


Saludos
Responder Con Cita
  #3  
Antiguo 10-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Caminante Ver Mensaje
Hola

Si el campo es numérico ¿porque lo filtras como si fuera texto?


Y ¿Cual es el error que te da?


Saludos
No se Puede Abrir el Filtro.

Explicate, Dices que:
Cita:
Empezado por Caminante Ver Mensaje
¿porque lo filtras como si fuera texto?
Como es eso?
Responder Con Cita
  #4  
Antiguo 10-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
En esta linea
Cita:
Empezado por feliz-58 Ver Mensaje
Código Delphi [-]
      DM.ADbuscarclientes.Filter:='Codigo like '+QuotedStr('%'+ EBuscar.Text + '%');
Saludos!
El operador like se aplica a campos tipo texto. Asi que el filtro lo aplicas como si fuera un campo tipo texto. Pero si es un autonumerico entonces no puede ser texto.

Saludos
Responder Con Cita
  #5  
Antiguo 10-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Oh :confused:

Cita:
Empezado por Caminante Ver Mensaje
En esta linea


El operador like se aplica a campos tipo texto. Asi que el filtro lo aplicas como si fuera un campo tipo texto. Pero si es un autonumerico entonces no puede ser texto.

Saludos
Como lo hago para un numérico?


Saludos!
Responder Con Cita
  #6  
Antiguo 10-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Supongo que seria mas o menos asi:

Código Delphi [-]
DM.ADbuscarclientes.Filter:=QuotedStr('Codigo =' + TRIM(EBuscar.Text);

Eso si debes validar el texto antes de colocar el filtro (En caso no se escriba un numero).

Saludos
Responder Con Cita
  #7  
Antiguo 10-04-2014
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 feliz-58.

Como te comenta Caminante, no tiene sentido usar el operador LIKE sobre números, sería una concepción totalmente subjetiva.

Imagina esta situación:
¿ Es 1000 similar a 10000 ? Pero claro! si debe ser hijo, sólo tiene un cero de diferencia...
¿ O es 1000 similar a 999 ? Por supuesto! si solo se diferencian en una unidad.
Generalmente un número se compara con otro por su igualdad, cardinalidad (u ordinalidad): <, <=, =, >=, > .

Aunque siempre tuve en baja estima el uso de códigos, siendo este un campo numérico, yo haría: La busqueda del código por igualdad y la busqueda por semejanza sobre la razón social (nombre o sociedad) del cliente.

Convengamos que es mas probable que el empleado recuerde, aunque con dudas que el cliente que llamó era Mario Perez o Marco Perez y no que era el 001673 o el 001763...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 10-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Caminante Ver Mensaje
Supongo que seria mas o menos asi:

Código Delphi [-]
DM.ADbuscarclientes.Filter:=QuotedStr('Codigo =' + TRIM(EBuscar.Text);

Eso si debes validar el texto antes de colocar el filtro (En caso no se escriba un numero).

Saludos
Gracias Por la Explicación, Probare.

Cita:
Empezado por ecfisa
Hola feliz-58.

Como te comenta Caminante, no tiene sentido usar el operador LIKE sobre números, sería una concepción totalmente subjetiva.

Imagina esta situación:
¿ Es 1000 similar a 10000 ? Pero claro! si debe ser hijo, sólo tiene un cero de diferencia...
¿ O es 1000 similar a 999 ? Por supuesto! si solo se diferencian en una unidad.
Generalmente un número se compara con otro por su igualdad, cardinalidad (u ordinalidad): <, <=, =, >=, > .

Aunque siempre tuve en baja estima el uso de códigos, siendo este un campo numérico, yo haría: La busqueda del código por igualdad y la busqueda por semejanza sobre la razón social (nombre o sociedad) del cliente.

Convengamos que es mas probable que el empleado recuerde, aunque con dudas que el cliente que llamó era Mario Perez o Marco Perez y no que era el 001673 o el 001763...

Saludos
Gracias por tomarte el tiempo de escribir, y entiendo, uso el filtrado por codigo solo para que se vea otra opcion mas XD.

Saludos.

Gracias por todo, hasta el luego.
Responder Con Cita
  #9  
Antiguo 10-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Smile

Cita:
Empezado por Caminante Ver Mensaje
Supongo que seria mas o menos asi:

Código Delphi [-]
DM.ADbuscarclientes.Filter:=QuotedStr('Codigo =' + TRIM(EBuscar.Text);

Eso si debes validar el texto antes de colocar el filtro (En caso no se escriba un numero).

Saludos
Gracias, y es asi:
Código Delphi [-]
DM.ADbuscarclientes.Filter:= 'Codigo ='+QuotedStr(TRIM(EBuscar.Text));

Saludos!
Responder Con Cita
  #10  
Antiguo 10-04-2014
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
En realidad creo que deberia ser:

Código Delphi [-]
DM.ADbuscarclientes.Filter:= 'Codigo ='+ Trim(EBuscar.Text);

Me olvide de quitar el quotedstr del inicio de la cadena.

Saludos...
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
Modificar campo autonumerico Carlex MS SQL Server 3 07-09-2006 17:06:47
campo autonumerico con letra Cosgaya Tablas planas 2 13-11-2005 11:52:45
campo autonumerico pharaonhx MySQL 4 14-04-2005 21:13:50
campo autonumerico en interbase pharaonhx Firebird e Interbase 4 02-03-2005 19:25:51
Asignación de Campo autonumérico Ulises Providers 2 15-07-2003 15:44:18


La franja horaria es GMT +2. Ahora son las 23:36: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