Ver Mensaje Individual
  #10  
Antiguo 12-03-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Reputación: 16
lmpadron Va por buen camino
Cita:
Empezado por LuisMiguel Ver Mensaje
De ser posible si pudiera explicar la forma que ha resuelto el problema usando los IDs seria muy bueno.
Un saludo
Es solo una forma distinta de hacerlo, dmartinezn tiene en un DBGrid datos que ya están guardados en la BD entonces porque mover toda la información si lo podemos hacer solo con los Ids? Asi movemos menos datos y es mas ligero el proceso.

Cita:
Empezado por dmartinezn Ver Mensaje
si existe una forma mas optima de hacer esto será bienvenida.
Tienes un DBGrid1 que te muestra la información que tienes en la BD o sea: Nombre, Sexo, Edad, y quieres pasar para el DBGrid2 solo aquellos que te interesan. O sea estas haciendo una selección de los datos del DBGrid1 y pasandolos al DBGrid2 por eso necesitas saber como pasar datos de un DBGrid a otro, supongo que después los guardarás en una tabla en tu BD sino para que utilizar un DBGrid verdad?
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();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO `equipo` (`id_equipo`,`nombre`,`sexo`,`edad`) VALUES "
				 "  ('" + DBGrid1->Columns->Items[0]->Field->Text + "'), "
                                 "  ('" + DBGrid1->Columns->Items[1]->Field->Text + "'), "
                                 "  ('" + DBGrid1->Columns->Items[2]->Field->Text + "');");
ADOQuery3->ExecSql();

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM `equipo`")
ADOQuery1->Open();

DBGrid2->DataSource->DataSet  = ADOQuery1;
Ahora bien si quieres guardar menos información podrías usar solo las Ids de los jugadores y guardarlas en la tabla equipo. Para ello la tabla equipo tendría menos campos, y quedarian como algo asi (es como me imagino la tabla LISTA DE JUGADORES y EQUIPO)

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();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO `equipo` (`equipo`,`integrante`) VALUES 
			" ('" + Edit1->Text + "')," // o cualquier otro lugar donde definas el número de equipo
                        " ('" + DBGrid1->Columns->Items[0]->Field->Text + "');"); // id del jugador  
ADOQuery3->ExecSql();

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT equipo.equipo, lista.nombre, lista.edad, lista.sexo FROM `prueba`.`lista`                 
                                  INNER JOIN equipo ON integrante = id_lista ORDER BY equipo.equipo;")
ADOQuery1->Open();

DBGrid2->DataSource->DataSet  = ADOQuery1;
Weno algo así, esto no lo he escrito en el builder así que igual se encuentran con alguno errores en la sintaxis pero al menos les da una idea de como lo haría yo y espero que les sea de utilidad.

Saludos
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________

Última edición por lmpadron fecha: 12-03-2012 a las 16:28:51.
Responder Con Cita