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 13-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Comparar y Validar Campos

Buenas tardes, Estoy super nuevo en esto de la programacion

Mi requerimiento es el siguiente estoy trabajando con una data de un sistema administrativo (base de datos DBISAM)y necesito una aplicación que lea el código del cliente en la tabla y el saldo (deuda) que posee el mismo, en estos momentos estoy comenzando con la búsqueda del cliente con el siguiente código:
Código Delphi [-]
Procedure TF_Clientes.VerificaCodigo;
var codigo : string;
begin
  With DataM.T_Clientes do
  begin
    codigo:= edit1.Text;
    IF  FieldByname('FC_CODIGO').AsString = codigo then
    begin
       ShowMessage('Codigo Encontrado');
    end
    else
    begin
      ShowMessage('Codigo No Existe');
    end;
  end;
end;

El detalle esta que solo valida el primer registro, no hallo como hacer una secuencia para que busque el código que digité en el edit.text

Me imagino que puede ser con un while o alguna sentencia como el LOCATE (no se si este ultimo lo acepta el DBISAM) pero no se como utilizarlo.

Disculpen y Gracias.

Última edición por ecfisa fecha: 13-10-2011 a las 22:24:03. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 13-10-2011
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 L3st4t.

Por favor te ruego que uses las etiquetas [delphi] [/delphi] para encerrar tu código Delphi. ( Etiquetas vB )

Creo que deberías hacer algo como:
Código Delphi [-]
...
  if DataM.T_Clientes.Locate('FC_CODIGO', Edit1.Text, []) then
    ShowMessage('Codigo Encontrado')
  else
    ShowMessage('Codigo No Existe');
...
No sé con que componentes estas trabajando ya que también se puede hacer mediante una consulta SQL.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 13-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola L3st4t.

Por favor te ruego que uses las etiquetas [delphi] [/delphi] para encerrar tu código Delphi.

Creo que deberías hacer algo como:
Código Delphi [-]
...
  if DataM.T_Clientes.Locate('FC_CODIGO', Edit1.Text, []) then
    ShowMessage('Codigo Encontrado')
  else
    ShowMessage('Codigo No Existe');
...
No sé con que componentes estas trabajando ya que también se puede hacer mediante una consulta SQL.

Un saludo.
Gracias por la pronta respuesta disculpa lo de las etiquetas no habia leido el apartado vB

Resulta que no me funciona ya que estoy usando
Código Delphi [-]
FieldByname
Si en el no me permite ver el registro desde la tabla me genera una error. Respecto a los componentes tendrias que decirme para ver si te entiendo pero creo que si acepta una consulta SQL....

Saludos...
Responder Con Cita
  #4  
Antiguo 13-10-2011
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.

Es que no es excluyente el uso del método FieldByName con el uso de la función Locate, ambas realizan taréas diferentes.

El método FieldByName es utilizado para acceder al valor de un campo (visualizar/asignar/modificar) mediante su nombre, en tanto que la función Locate, sirve para buscar/posicionarse en un registro de una tabla.

Respecto a los componentes me refiero si estas usando TTable, TQuery (BDE) - TADOTable, TADOQuery (ADO) - TIBDataSet, TIBQuery (IBX) ...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 13-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Entiendo pero cuando coloco la instruccion que me diste me genera erro,r porque supungo que no encuentra o relaciona el campo FX_CODIGO que esta dentro de la tabla y respecto a los componentes creo que utilizo SQLQUERY ya que los otros que me mencionas no me suenan por ningún lado.

Saludos
Responder Con Cita
  #6  
Antiguo 13-10-2011
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.

Entonces se trata de los componentes dbExpress.

La busqueda usando un TSQLQuery sería:
Código Delphi [-]
function ExisteElDato(AQuery: TSQLQuery; Dato: string): Boolean;
begin
 with AQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM TU_TABLA');
    SQL.Add('WHERE TU_CAMPO = :DATO');
    ParamByName('DATO').AsString:= Dato;
    Open;
    Result:= not IsEmpty;
  end;
end;
Deberás reemplazar: TU_TABLA y TU_CAMPO, por los nombres que le hayas dado a la tabla y al campo sobre el que realizás la búsqueda.

Ejemplo de uso:
Código Delphi [-]
 if ExisteElDato(SQLQuery1, Edit1.Text) then
    ShowMessage('Existe')
  else
    ShowMessage('No existe');

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 13-10-2011 a las 23:53:39. Razón: Sacar carita (:D) del código...
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
Comparar dos campos de una tabla leogobo Conexión con bases de datos 5 06-06-2011 21:14:29
Problema al comparar dos campos en sql m.ruiz SQL 6 02-08-2007 11:33:48
Comparar 4 campos fechas y hacer un update con el más nuevo pablo_911 SQL 0 11-07-2006 23:39:27
time, comparar 2 campos ttime Pascual Montes Varios 2 29-03-2005 19:50:47
Comparar campos de un DBGrip conectado a in IBDataSet Durbed Conexión con bases de datos 0 01-10-2004 16:46:16


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


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