Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2008
mariaesde mariaesde is offline
Miembro
 
Registrado: may 2008
Ubicación: Utrera (Sevilla)
Posts: 18
Poder: 0
mariaesde Va por buen camino
Red face copiar de una base a otra

Hola de nuevo a todos!
Es mi segunda consulta y tras el exito de la primera me animo a preguntaros porque me estoy volviendo loca.

Estoy trabajando con tablas y querys.

Tengo un formulario donde en un dbgrid cargo distintas bases de datos dependiendo del botón que pulse. Solo me sirve para mostrarlas.

Y justo debajo tengo otro dbgrid que hace referencia a otra base de datos(otra table)que se encuentra vacía.

Pues bien yo quiero que al pulsar una línea del primer dbgrid pulse el boton AÑADIR y se me añada y registre en el otro dbgrid y en la otra base de datos.

Espero no causar mucha molestia y haber explicado mi duda con claridad, que conste que lo he intentado..

Un saludo y gracias adelantadas
Responder Con Cita
  #2  
Antiguo 24-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola maria, deberias programar en el evento OnDblClick del dbgrid, teniendo en cuenta que los datos en el dbgrid se pueden coger mediante DBGrid1.Columns.Fields[indice]

algo asi

Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject);
var
          dato1,dato2 : string;
          dato3,dato4 : integer;
          db : TDBGrid;
begin
            db := (sender as TDBGrid);
            dato1 := db.Columns[1].Field.Asstring
            ...
            // o bien del query del dbgrid origen directamente
            dato4 := db.DataSource.Dataset.FieldByName('dato4').Asinteger;
            ...
            // y luego insertarlo
            tabladestino.Append;
            tabladestino.FieldValues['id'] := Nuevo_id;
             ...
            tabladestino.Post;
end;
Responder Con Cita
  #3  
Antiguo 24-07-2008
mariaesde mariaesde is offline
Miembro
 
Registrado: may 2008
Ubicación: Utrera (Sevilla)
Posts: 18
Poder: 0
mariaesde Va por buen camino
perdoname coso, me puedes poner un ejemplo de como seria exactamente? de una sola forma? es que de bases de datos no entiendo mucho, lo siento...
Responder Con Cita
  #4  
Antiguo 24-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Código Delphi [-]
procedure TForm1.DBGrid1Click(sender : TObject);
var
        db : TDBGrid;
        dato1 : string;
        dato2 : integer;
        dato3 : boolean;
        ...
begin
        db := sender as TDBGrid; // cogemos el argumento sender y lo interpretamos como dbgrid: sera tu dbgrid1, el origen
        
        // cogemos los datos desde el origen y los guardamos en variables para luego copiarlos.

        dato1 := db.DataSource.DataSet.FieldbyName('dato1').Asstring;
        dato2 := db.DataSource.DataSet.FieldByName('dato2').Asinteger;
        dato3 := db.DataSource.DataSet.FieldByName('dato3').Asboolean;
        ...

       // copiamos, insertando en la tabla/query destino, la cual se supone ligada a un datasource que a su vez esta ligado al segundo DBGrid
             
       tabla.Append;
       tabla.FieldValues['dato1'] := dato1;
       tabla.FieldValues['dato2'] := dato2;
       tabla.FieldValues['dato3'] := dato3;
       ...
       tabla.Post;
       tabla.Refresh;
end;

...creo q poco mas se puede decir saludos, a ver si te sirve. Tambien se puede hacer directamente con sentencias SQL, pero creo que si aun no lo dominas, mejor de esta manera. Ten en cuenta, por eso, que si existe algun identificador el cual no se pueda repetir, deberas crear uno nuevo para el registro nuevo en esa tabla destino.
Responder Con Cita
  #5  
Antiguo 25-07-2008
mariaesde mariaesde is offline
Miembro
 
Registrado: may 2008
Ubicación: Utrera (Sevilla)
Posts: 18
Poder: 0
mariaesde Va por buen camino
una pregunta estupida quizás... los nombres de las columnas de la tabla origen no tiene porque coincidir con las de la tabla destino verdad?? osease... puedo copiar el dato NOMBREBEBIDA en la columna NOMBREARTICULO, si son del mismo tipo verdad??
Responder Con Cita
  #6  
Antiguo 25-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por mariaesde Ver Mensaje
una pregunta estupida quizás... los nombres de las columnas de la tabla origen no tiene porque coincidir con las de la tabla destino verdad?? osease... puedo copiar el dato NOMBREBEBIDA en la columna NOMBREARTICULO, si son del mismo tipo verdad??
Exacto, mientras sean del mismo tipo (y de las mismas "dimensiones") (1) no deberías tener problemas.

(1) Esto dependerá del motor de base de datos que empleas. Por darte un ejemplo... si el campo que deseas copiar es VARCHAR(30) y lo quieres copiar a un VARCHAR(20)... puede que existan problemas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 25-07-2008
mariaesde mariaesde is offline
Miembro
 
Registrado: may 2008
Ubicación: Utrera (Sevilla)
Posts: 18
Poder: 0
mariaesde Va por buen camino
ay q ser papa.... creo q voy a tener q leer otra vez mejor los manuales y tutoriales que tengo porque yo no me entero, o estoy haciendo algo ml y no me funciona... las cosas d la programacion
Responder Con Cita
  #8  
Antiguo 25-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por mariaesde Ver Mensaje
ay q ser papa.... creo q voy a tener q leer otra vez mejor los manuales y tutoriales que tengo porque yo no me entero, o estoy haciendo algo ml y no me funciona... las cosas d la programacion
Hola mariaesde,
¿Podrías indicarnos la estructura de tus tablas, la base de datos que empleas, el código que tienes hasta el momento, los componentes que usas y la forma en que los estás enlazando?

Si pudieramos conocer con mayores detalles tu caso, te podríamos seguir asesorando.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
Copiar una base de datos desde otra maquina karla Varios 6 24-08-2006 20:24:16
¿Cómo puedo copiar el contenido de una tabla en otra de distinta Base de Datos? nuri SQL 4 08-07-2005 12:39:52
Copiar una tabla a otra base de datos noe Firebird e Interbase 4 09-03-2005 17:37:47
¿Copiar una base de datos en otra? andres Firebird e Interbase 2 23-02-2004 18:34:25


La franja horaria es GMT +2. Ahora son las 21:08:00.


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