Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2005
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
como visualizar el resultado de una consulta en un edit

Hola a todos, soy nuevo en este lugar que por cierto es muy bueno

Mi problema está en como visualizar el resultado de una consulta en un edit?. Estoy utilizando como base de datos MySql y Delphi 7, mi tabla tiene varios campos como cuenta, nombre y periodo donde el periodo es igual a 01, 02 y asi los 12 meses del año.

Ahora mi busqueda funciona para el campo cuenta bien en un DBGrid ya que puede visualizar varios registros, pero en mis registros hay varias cuentas iguales de las cuales solo las diferencia el periodo es decir el mes.
Tenía entendido que debo guardar la busqueda en una variable y luego asignarla a un edit, el problema que no se cual es el resultado del codigo adjunto ya que en un DBGrid lo hace solito con DataSource

De antemano gracias por su ayuda
Código Delphi [-]
 
procedure TFENTREGACC.BitBtn1Click(Sender: TObject);
var
BUSCAR:STRING;
begin
    BUSCAR:='SELECT * FROM CCCLIENTES WHERE (PERIODO=01) AND    CUENTA LIKE ''' ;
    BUSCAR:=BUSCAR+'%';
    BUSCAR:=BUSCAR+CUENTA1.Text;
    BUSCAR:=BUSCAR+'%';
    BUSCAR:=BUSCAR+'''';
    FDM.QCC.SQL.Clear;
    FDM.QCC.SQL.Add(BUSCAR);
    FDM.QCC.Active:=TRUE;
    FDM.QCC.Open;
end;

Última edición por jmariano fecha: 28-09-2005 a las 23:49:10. Razón: Uso de la etiqueta [delphi]
Responder Con Cita
  #2  
Antiguo 28-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

No h evisto bien el codigo, ya que me confunden tantas comillas.
Solucion facil: usa un DBEdit, que te muestra el campo del registro actual. Y tambien en podrias usar Parametros en la sentencia:
Código Delphi [-]
procedure .....(...);
 var
 Buscar:String;
 Begin
 Buscar:='Select * from ccClientes Where (Periodo=01) and cuenta Like :cuenta';
 QDataset.Sql.Text:=Buscar;//No se que dataset usas...
 QDataset.ParamByName('cuenta').AsString:='%'+Cuenta1.Text+'%';
 QDatset.Open;//No es necesario llamar el Active y el open, con uno basta 
 End;
Espero que te sirva
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 29-09-2005 a las 02:26:39.
Responder Con Cita
  #3  
Antiguo 29-09-2005
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Hola vtdeleon te cuento que cambie mi código pero no visualiza nada.

Ahora te detallo lo que estoy usando ya que buscaba solucionar mi problema con una sola cuenta pero en realidad tengo que buscar cuatro cuentas a la vez y validar mediante el periodo y situacion si esta vacio o no, pero debo mostrar en los 48 edit su situacion. Si situacion es vacio el edit es PPP sino EEE y si no existe la cuenta que este en blanco, supongamos que en Febrero no existe la cuenta 1000000001 su periodo era igual a 02 pero como no existe, su edit estará en blanco es decir sin ningun caracter y por ultimo que me muestre el nombre de la cuenta en un edit diferente para cada cuenta


FDM=Datamodule
QCC=Tquery que esta conectada con mi base de datos
TCC=tabla CCCLIENTES

mis registros estan de las siguiente manera

cuenta nombre periodo situacion
1000000001 A 01 PPP
1000000002 B 01 ppp
1000000003 C 01
1000000004 D 01..... EEE
................ .. .. ..... vacio 1000000001 periodo=02
1000000002 B 02 PPP
1000000003 C 02 PPP
1000000004 D 02..... PPP......
.
.
.
.....y asi hasta periodo =12

osea tendremos la cuenta 1000000002 doce veces


"El campo situacion esta vacio hasta que asignemos un valor"

los valores PPP y EEE son caracteres que me serviran para hacer comparaciones despues

ene feb mar abr.............................................
CUENTA1 |NOM| |PPP||PPP|| ||EEE|| || || || || || || || |

CUENTA2 |NOM| |PPP|| ||PPP||PPP|| || || || || || || || |

CUENTA3 |NOM| |EEE|| || || || || || || || || || || |

CUENTA4 |NOM| | || || || || ||PPP|| || || || || || |

|EEE|,| |,|PPP| representan un edit

Luego no se como comparar el PPP que asigné, ya que ese valor debo guardar en el campo SITUACION en los 12 periodos y de las cuatro cuentas


todo esto ya lo logre de la siguiente manera pero sin sql


IF (FDM.TCCCUENTA.VALUE = CUENTA1.TEXT) AND
(FDM.TCCGESTION.Value = GEST.Text) THEN

begin

NAME3.TEXT:= FDM.TCCNOMBRE.Value;

end;

lo tuve que hacer 4 veces para las 4 busquedas, esto solo es para el nombre.

Para validar su situación fue de la siguiente manera

If (FDM.TCCCUENTA.Value = CUENTA1.Text) AND
(FDM.TCCGESTION.Value = GEST.Text) AND

(FDM.TCCPERIODO.Value = '01') AND

(FDM.TCCSITUACION.Value = '')

THEN C1C1.TEXT:= 'P'

else

If (FDM.TCCCUENTA.Value = CUENTA1.Text) AND

(FDM.TCCGESTION.Value = GEST.Text) AND

(FDM.TCCPERIODO.Value = '01') AND

(FDM.TCCSITUACION.Value <> '')

THEN C1C1.Text:='E';


(no pongo el codigo porque es largo, y porque está mal desarrollado)
como veras esta la tuve que hacer 12 veces para cada periodo por cuatro cuentas pero como son 150.000 registros tarda mucho la busqueda pero funciona.

Nuevamente agradeceré mucho a todos los expertos que vi en este foro cuando me den una manito
Saludos.
Responder Con Cita
  #4  
Antiguo 29-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Campos
Código:

cuenta      nombre periodo situacion
1000000001  A      01       PPP
1000000002  B      01       ppp
1000000003  C      01
1000000004  D      01.....  EEE
................ .. .. ..... vacio 1000000001 periodo=02
1000000002  B      02       PPP
1000000003  C      02       PPP
1000000004  D      02.....  PPP......
+++++++++++++++++++++++++++++
y necesitas:
+++++++++++++++++++++++++++++
Cuentas Nombres   ene   feb  mar abr...........................
CUENTA1 |NOM    | |PPP||PPP|| ||EEE|| || || || || || || || |

CUENTA2 |NOM    | |PPP|| ||PPP||PPP|| || || || || || || || |

CUENTA3 |NOM    | |EEE|| || || || || || || || || || || |

CUENTA4 |NOM    | | || || || || ||PPP|| || || || || || |
Creo que es lo que tratas de plantear:s
Si esto es asi, te aconsejo que uses un DBGrid y o varios DBCrtlGrid con 4 filas

Tambien Pivotear la tabla, chequea este hilo: http://www.clubdelphi.com/foros/showthread.php?t=17253
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 29-09-2005 a las 03:13:45.
Responder Con Cita
  #5  
Antiguo 29-09-2005
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Exactamente lo que pasa es que se desconfiguró al enviarlo.

Gracias lo vere en este momento
Responder Con Cita
  #6  
Antiguo 29-09-2005
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Hola nuevamente, estaba revisando y el aspecto visual es muy importante, lo que pasa que esta aplicacion es para que un usuario maneje lo menos que pueda siendo el sistema el que haga la mayor parte como la actualizacion de los registros automaticamente.
Lo que deseo saber por el momento es como visualizar el resultado de una consulta en un edit, por cuestion de diseño tiene que ser en un edit.
Ese es mi mayor problema despues me ocupare en el guardado automático de mis registros.

Gracias nuevamente
Saludos.
Responder Con Cita
  #7  
Antiguo 29-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Damian666
lo que pasa que esta aplicacion es para que un usuario maneje lo menos que pueda siendo el sistema el que haga la mayor parte
Yo diría que ese es el objetivo de cualquier sistema


Cita:
Empezado por Damian666
Lo que deseo saber por el momento es como visualizar el resultado de una consulta en un edit, por cuestion de diseño tiene que ser en un edit.
Código Delphi [-]
Edit1.Text := FDM.QCC.FieldByName('campo').AsString;

// Saludos
Responder Con Cita
  #8  
Antiguo 29-09-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
También te aconsejo que te mires el evento OnAfterScroll. Se dispara cuando se cambia el registo activo del dataset y puedes utilizarlo para asignar el campo de la tabla a tu edit
Un saludo

Edu
Responder Con Cita
  #9  
Antiguo 29-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

En vez de usar un Edit, usaría un DbEdit asociado al Dataset, y también usaria el DbCtrlGrid para mostrar las 4 filas que necesitas
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #10  
Antiguo 29-09-2005
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Muchas gracias a todos, mejoró bastante mi aplicación.
Saludos.
__________________
El que da primero da dos veces.
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


La franja horaria es GMT +2. Ahora son las 23:24:45.


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