Pasar datos de un DBGrid a otro DBGrid c++ Builder 6
Saludos Amigos
Se que este tema ya se ha tratado en este foro, pero las soluciones la han dado en Delphi y me resulta difícil entenderlo. Lo que quiero hacer es pasar una o varias filas de un DBGrid a otro DBGrid. Para mostrar los datos en el DBGrid1 utilizo un ADOConnection,DataSource1, ADOQuery1. En DBGrid2 inicialmente también lo había conectado al DataSource1 y en él se me mostraban tambien los datos del DBGrid1, pero no es esa la idea. Todos los datos que están mostrados en la fila seleccionada del DBGrid1 son los que pasare al DBGrid2. La finalidad de pasar las filas seleccionadas del DBGrid1 al DBGrid2 es para luego almacenarlo en la BD. Un saludo. |
No tiene sentido :confused:
Un dbgrid muestra los registros que te has traido de la base de datos mediante un sql. Si quieres guardarlos en la BD, ¡¡¡ están guardados ya !!!, de ahí han salido para mostrarlos. Además que pasarlo a otro dbgrid no sirve para nada :confused: Creo que no se ha entendido lo que quieres, no tiene lógica ninguna, mejor te explicas con más detalle :) |
Saludos Casimiro Notevi
Usted tiene razon en cuando a que el DBGrid muestra unos datos que ya estan guardados en la BD, pero explico el por qué quiero hacer esto. El DBGrid1 me muestra los siguientes datos Nombre Sexo Edad y quiero pasar para el DBGrid2 solo aquellos que me interesan, para formar un equipo y luego poder decir, el equipo 1 esta formado por: Pedro M 29 Juan M 28 D F 20 y así sucesivamente... esa es la idea que se me ocurrió, de primero pasarlo para el DbGrid2 y luego guardar ese equipo, si existe una forma mas optima de hacer esto será bienvenida. |
Hola.
Antes que nada, te comento que opino exáctamente como Casimiro. Pero sólo a modo de guía de como pasar los datos seleccionados de un TDBGrid a otro en Builder C++, te pongo un ejemplo: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) Saludos. |
Gracias ecfisa
En el ejemplo que usted me puso Código:
G1->SelectedRows->Count |
Habilita en el dbgrid la propiedad... vaya, no me acuerdo del nombre, "multiselected" o algo así :)
Mira esto. |
Hola.
Nuevamente coincido con la respuesta de Casimiro. Como expresaste anteriormente que te cuesta entender el código Delphi, en el enlace dice:
En Builder C++ sería: Código:
DBGrid1->Options = TDBGridOptions(DBGrid1->Options) << dgMultiSelect; |
en mas de una ocasión he necesitado hacer lo mismo pero lo he resuelto usando los IDs, sin necesidad de mover toda la información, de todas formas muy útil el post, también lo agradezco.
|
De ser posible si pudiera explicar la forma que ha resuelto el problema usando los IDs seria muy bueno.
Un saludo |
Cita:
Cita:
Bueno porque en vez de pasar los datos de un DBGrid a otro no guardas directamente la selección hecha a la tabla en la BD y después apuntas el DBGrid2 a dicha tabla ? Código:
ADOQuery1->Close(); LISTA (de jugadores) Id_lista = para definir cada registro como único Nombre = donde definirías el nombre de los jugadores Sexo = donde definirías el sexo de los jugadores Edad = donde definirías la edad de los jugadores EQUIPO Id_equipo = para definir cada registro como único Equipo = donde definirías el numero de equipo Integrante = donde definirías que jugador forma parte de el AsumieNdo que en el DBGrid1 muestres el ID como primer valor en el DBGrid1 (sino lo muestras tendrás que hacer una consulta aparte para obtenerlo ok) Código:
ADOQuery1->Close(); Saludos |
Cita:
Si no interpreto mál, ese código copia el registro actualmente seleccionado, pero no soporta el caso de una selección múltiple en el TDBGrid. Un saludo. |
Cita:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) |
Excelente amigo, justo lo que necesitaba, muchas gracias a los 2.Un pequeño detalle es que aun no encuentro lo de la selección múltiple en el TDBGrid. En el ejemplo que puso Impadrom
Código:
if (DBGrid1->SelectedRows->Count != 0) Código:
DBGrid1->Options = TDBGridOptions(DBGrid1->Options) << dgMultiSelect; Código:
DBGrid1->SelectedRows->Count |
Cita:
Hola Luis Miguel la selección múltiple es una propiedad del TDBGrid y puedes definiría en el Object Inspector o en el runtime a través de código como te han indicado anteriormente. Para efectuar la selección debes dar click en una fila y después con el Ctrl apretado dar click en otra !!! El código solo funcionará cuando exista multiselect o sea cuando halla mas de una fila seleccionada. Saludos |
La franja horaria es GMT +2. Ahora son las 12:13:49. |
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