Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Para mi esto es un masterdetail, creo que nos falta informacion de tu parte
Saludos
__________________
Siempre Novato
Responder Con Cita
  #2  
Antiguo 15-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Que base de datos usas?.
Que tan grande es el programa?.
Esto te lo digo para saber si lo envías en un zip, tal vez me guío mas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 15-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
tengo 2 tablas distintas una d productos y otra d servicios...necesito guardar en las variables cod y desc lo seleccionado por el usuario para luego pasarlo a una factura...toy haciendo un software de una pelukeria para un final d la facultad...q otros datos necesitas?
Responder Con Cita
  #4  
Antiguo 15-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
la base de datos la hice en access y el programa zipeado con la base de datos pesa 1.93 mb.. como t lo puedo enviar?
Responder Con Cita
  #5  
Antiguo 15-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
hola, puedes usar directamente el dataset de cada dbgrid

Código Delphi [-]

cod1 := DBGrid1.DataSource.Dataset.FieldByName('cod').Asinteger;
cod2 := DBGrid2.DataSource.DataSet.FieldByName('cod').Asinteger;
Responder Con Cita
  #6  
Antiguo 15-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Parece que no me estan leyendo , ni modo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 15-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
caro gracias por tus respuestas lo q m pasast funciona bien...pero lo q yo kiero es guardar los datos en cod y desc ya sea si se esta pulsando el dbgrid1 o el dbgrid2 no kiero hacer otras variables para desp pasarlo a una factura
Responder Con Cita
  #8  
Antiguo 15-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Caro, yo si te leo, como no hacerlo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Caro, yo si te leo, como no hacerlo.
Saludos
Oh, muchas gracias amiguito .

Creo que ya te he entendido deprimera, tu quieres obtener los valores del ultimo DBGrid que ha tenido el foco, si es así no se puede directamente, ya que si preguntas por Focused el que va tener el foco es tu boton o si preguntas por ActiveCOntrol lo mismo.

Lo que se me ocurre es que guardes en una variable el ultimo dbGrid en el que s ele ha hecho click, eso lo puedes hacer en el evento OnEnter, pero también debes definirte una variable global.

Código Delphi [-]
 DBGridFoco : TDBGrid; //Nuestra variable global
 
 en el codigo de tu boton
 
 if DBGridFoco = DBGrid1 then
  begin
   cod:= adotable1.fieldbyname('Codigo').AsInteger;
   desc:= adotable1.fieldbyname('Servicio').AsString;
  end;

 if DBGridFoco = DBGrid2 then
  begin
   cod:= adotable2.fieldbyname('Codigo').AsInteger;
   desc:= adotable2.fieldbyname('descripcion').AsString;
  end;
 
//Ahora en el evento OnEnter de cada DBGrid
 
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
 DBGridFoco := DBGrid1;
end;
procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
 DBGridFoco := DBGrid2;
end;

La variable global puede ser de otro tu tipo, solo te sirve para que identifiques cual ha sido el ultimo que ha tenido el foco.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 16-11-2008 a las 00:21:17.
Responder Con Cita
  #10  
Antiguo 15-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Yo es que no entiendo bien bien que es lo que quiere hacer...

para coger los valores de cada campo (por cierto, código no es un nombre de campo correcto) puedes o bien, sabiendo a que dataset esta relacionado

Código Delphi [-]

cod := AdoQuery1.FieldByName('codigo').Asinteger;

o bien desde el dataset del dbgrid (que es el mismo solo que accedido de manera mas relativa)

Código Delphi [-]

cod := DBGrid1.DataSource.DataSet.FieldByName('codigo').Asinteger;

no sobreescribas variables, pues no tienes sentido
Cita:
procedure Tcodigo.BitBtn1Click(Sender: TObject);
var
cod: Integer;
desc: String;
begin
cod:= adotable1.fieldbyname('Código').Value;
desc:= adotable1.fieldbyname('Servicio').Value; // con lo de despues...esto para que sirve?

cod:= adotable2.fieldbyname('Código').Value;
desc:= adotable2.fieldbyname('Descripción').Value;


edit1.Text:=inttostr(cod);
edit2.Text:= desc;
end;
y si nos explicas un poco mejor que es lo que quieres hacer...
Responder Con Cita
  #11  
Antiguo 15-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Vamos a ver si entiendo.
Tienes dos dbgrid
Estos, estan enlazados a dos adotables independientes
Quieres que cuando se presione en alguno de los dos dbgrid este dato se pase a los edits, independientemente de cual dbgrid o table sea.
Es asi?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 15-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
si lo que quieres es coger cod, descr (que existen tanto en productos como servicios) entonces si, tendras que averiguar que dbgrid es la seleccionada (aunque si lo miras bien, puedes usar una unica tabla productos+servicios y en ella que este incluidos todos los trabajos/ventas). Puedes usar DBGrid.Focused, por ejemplo:

Código Delphi [-]

if DBGrid1.Focused then 
begin     
    cod := DBGrid1.DataSource.DataSet.FieldByName('cod').Asinteger;
...
end
else
if DBGrid2.Focused then 
begin
    cod := DBGrid2.DataSource.DataSet.FieldByName('cod').Asinteger;
...

end;

lo malo es que al clickar el boton, las grids te perderan el foco. Creo que tendrias que ponerlo todo en una unica tabla o bien hacer dos botones de agregar, uno por productos y otro por servicios. saludos.
Responder Con Cita
  #13  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
O bien usando el dblclick de cada dbgrid...

Código Delphi [-]

procedure TForm1.DBGridDblClick(sender : TObject);
begin
    cod := (sender as TDBGrid).DataSource.DataSet.FieldByName('codigo').Asinteger;
    descr := (sender as TDBGrid).DataSource.DataSet.FieldByName('descr').Asstring;

    insertar_(cod,descr);
end;

poniendo esto en el OnDblClick de las dos dbgrids.
Responder Con Cita
  #14  
Antiguo 16-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
tengo 2 tablas una de Servicios y otra de Productos...
los campos de Servicios son Código, Servicio y Precio
los campos de Productos son Código, Descripción y Precio..echos en access

yo quiero q al seleccionar una fila d cualkier dbgrid (el dbgrid1 asociado a un adotable1 q pertenece a la tabla Servicios y el dbgrid2 asociado a un adotable2 q pertenece a la tabla Productos) m lo guarde en las variables cod y desc para pasarlos a otra pantalla donde se realiza una factura
Responder Con Cita
  #15  
Antiguo 16-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Perdona pero no termino de entender el concepto, para mi se podría hacer con sql.
Coso va muy bien con la explicación, creo que mejor lo sigues a el.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #16  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Entonces, en el evento OnDblClick o bien OnClick, deberas recoger las variables y luego enviarlas.

Código Delphi [-]
procedure TForm1.DBGridOnDblClick(sender : TObject);
var
    cod : integer;
    dsc : string;
    prc : double;
begin
    cod := (sender as TDBGrid).FieldByName('codigo').Asinteger;
    prc := (sender as TDBGrid).FieldByName('precio').Asfloat; 

    if (sender as TDBGrid) = DBGrid1 then // DBGrid1 = la de servicios
    dsc := DBGrid1.DataSource.Dataset.FieldByName('servicio').Asstring
    else 
    if (sender as TDBGrid) = DBGrid2 then // DBGrid2 = la de productos
    dsc := DBGrid2.DataSource.DataSet.FieldByName('descripcion').Asstring;

    Insertar_en_factura(cod,dsc,prc);
end;

Última edición por coso fecha: 16-11-2008 a las 00:17:39.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Fila Seleccionada DBGrid lacovera OOP 1 26-09-2008 15:58:40
marcar una fila seleccionada!! candido OOP 10 19-10-2007 15:53:46
Borrar fila seleccionada de un componente TStringGrid JM75 OOP 3 16-11-2006 10:31:06
cambiar color en fila seleccionada en un dbgrid gmontes OOP 2 05-05-2005 22:33:24
cambiar color a la fila seleccionada de un grid!! triniti OOP 2 03-08-2004 13:00:42


La franja horaria es GMT +2. Ahora son las 08:32:50.


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