Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Conexión con bases de datos
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Conexión con bases de datos

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 28/09/2005
Damian666's Avatar
Damian666 Damian666 is offline
Miembro
 
Join Date: 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;

Last edited by jmariano : 28/09/2005 at 23:49. Reason: Uso de la etiqueta [delphi]
Reply With Quote
  #2  
Old 28/09/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
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!

Last edited by vtdeleon : 29/09/2005 at 02:26.
Reply With Quote
  #3  
Old 29/09/2005
Damian666's Avatar
Damian666 Damian666 is offline
Miembro
 
Join Date: 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.
Reply With Quote
  #4  
Old 29/09/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos

Campos
Code:

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!

Last edited by vtdeleon : 29/09/2005 at 03:13.
Reply With Quote
  #5  
Old 29/09/2005
Damian666's Avatar
Damian666 Damian666 is offline
Miembro
 
Join Date: 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
Reply With Quote
  #6  
Old 29/09/2005
Damian666's Avatar
Damian666 Damian666 is offline
Miembro
 
Join Date: 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.
Reply With Quote
  #7  
Old 29/09/2005
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: 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
Quote:
Originally Posted by 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


Quote:
Originally Posted by 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
Reply With Quote
  #8  
Old 29/09/2005
epuigdef's Avatar
epuigdef epuigdef is offline
Miembro
 
Join Date: Jul 2005
Posts: 196
Poder: 22
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
Reply With Quote
  #9  
Old 29/09/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
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!
Reply With Quote
  #10  
Old 29/09/2005
Damian666's Avatar
Damian666 Damian666 is offline
Miembro
 
Join Date: 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.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 02:16.


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