PDA

Ver la Versión Completa : Guardar,Modificar en 2 tablas juntas!


learning_delphi
08-10-2011, 03:35:57
Buen dia a todos.

Me gustaria saber como guardar , modificar y borrar datos de 2 tablas de mi base de datos,
se como hacerlo directamente en 1 tabla , pero ahora tengo 2 tablas desplegadas en un grid del cual al dar dblclick me manda a otro form en el cual me muestra los Field de 3 campos, 2 campos de una tabla y 1 mas de otra en 3 DBedit respectivamente, quiero efectuar dichos cambios en ambas tablas al mismo tiempo aqui tengo los codigos que uso para hacer cambios conectado solo a una.


Begin //para guardar insertar datos pongo este codigo
with IBQuery do
begin
close;
SQL.text:='insert into RUTAS values(:p1,:p2)';
ParamByName('p1').AsSmallInt:=StrToInt(edit1.text);
ParamByName('p2').asstring:=edit2.text;
q1.ExecSQL;
showmessage('¡Ruta nueva agregada!');
end;
end;
end.

//para modificar uso este codigo
Begin
With IBQuery do
begin
Close;
SQL.text:='UPDATE RUTAS SET NOMRUTA=:p1 where RUTA=:p2';
ParamByName('p1').AsString:=edit2.text;
ParamByName('p2').AsSmallInt:=StrToInt(edit1.Text);
showmessage('¡modificacion realizada!');
ExecSQL;
end;
end;
end.

Espero puedan ayudarme de antemano les doy las gracias por soportarme :$:$ saludos ^^.

Caral
08-10-2011, 03:41:09
Hola
Tienes dos hilos dupicados. (http://www.clubdelphi.com/foros/showthread.php?t=76095)
Por favor a algun moderador, que lo revise.
Saludos

Caral
08-10-2011, 03:42:14
Hola
La verdad no entiendo bien.
Se ve el codigo de modificar e insertar, pero no se ve el evento del doble click del dbgrid.
Saludos

ecfisa
08-10-2011, 03:58:55
Hola
Tienes dos hilos dupicados. (http://www.clubdelphi.com/foros/showthread.php?t=76095)
Por favor a algun moderador, que lo revise.
Saludos
Hola Amigo. :)

Recién entro, ya están combinados.

Un saludo.

Casimiro Notevi
08-10-2011, 04:03:53
¡¡¡Esas etiquetas para el código!!! ;)

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

learning_delphi
08-10-2011, 04:04:26
Hola
La verdad no entiendo bien.
Se ve el codigo de modificar e insertar, pero no se ve el evento del doble click del dbgrid.
Saludos



Disculpa por no explicarme bien, ese codigo que puse es unicamente el codigo para guardar & modificar datos que he usado anteriormente para modificar y agregar datos conectado a una tabla, en ese caso 'RUTAS'.

En mi programa actual , tengo un grid el cual esta conectado a un DataSource el cual a su vez se conecta con un TIBDataSet al cual le meti una consulta a 2 tablas aqui muestro como es :

SELECT RU.RUTA,RU.NOMRUTA,EDO.NOMESTADO
FROM RUTAS RU, ESTADOS EDO
WHERE RU.RUTA=EDO.CVEESTADO

Con el codigo SQL anterior me muestra en el grid los datos RUTA , NOMRUTA de mi tabla RUTAS
y NOMESTADO de mi tabla ESTADOS.

procedure TForm1.DBgridDblClick(Sender: TObject);
begin
DBedit1.DataSource:=Form1.DataSource1;
DBedit1.DataField:='RUTA';
DBedit2.DataSource:=Form1.DataSource1;
DBedit2.DataField:='NOMRUTA';
[/SIZE]DBedit3.DataSource:=Form1.DataSource1;
DBedit3.DataField:='NOMESTADO';

form2.ShowModal;
end;
end.

En mi Form2 pone en los 3 DBedit los datos correspondientes
tengo 3 botones mas Guardar , Modificar & Borrar de los cuales no puedo usar el mismo codigo que puse anteriormente ya que ahora son 2 tablas y no 1 :/ espero haberme explicado bien esta vez ^^ gracias por tu respuesta y ayuda :)

Caral
08-10-2011, 04:08:22
Hola
A ver si entiendo bien:
En el form dos es donde quieres hacer las modificaciones, guardar etc, en base a la informacion que contienen los DBEdit ???.
Saludos

ecfisa
08-10-2011, 04:12:53
Hola learning_delphi.

Ya te imaginarás que te voy a solicitar... No dupliques el mismo mensaje en dos hilos diferentes.

Comprendo que no llevas tantos mensajes y por inexperiencia estas cosas suelen suceder, pero por favor tomá en cuenta este pedido.

También trata de ir encerrando tu código Delphi entre las etiquetas (codigo) .

Un saludo. :)

learning_delphi
08-10-2011, 04:15:30
Hola learning_delphi.

Ya te imaginarás que te voy a solicitar... ;) : No dupliques el mismo mensaje en dos hilos diferentes.

Comprendo que no llevas tantos mensajes y por inexperiencia estas cosas suelen suceder, pero por favor tomá en cuenta este pedido.

Un saludo. :)



Mil disculpas Ecfisa lo que pasa es que di enviar a mi mensaje, y luego me pidio esperar 30 segundos por lo cual espere los 30 y volvi a darle enviar, supongo por eso duplique , no fue mi intención u.u espero no vuelva a pasar jeje

learning_delphi
08-10-2011, 04:16:51
Hola
A ver si entiendo bien:
En el form dos es donde quieres hacer las modificaciones, guardar etc, en base a la informacion que contienen los DBEdit ???.
Saludos


Exactamente Caral eso quiero hacer , pero no se como. mi codigo no me funciona debido a que son dos tablas , y ya no una como acostumbraba hacerlo, Saludos ^^.

learning_delphi
08-10-2011, 04:19:00
¡¡¡Esas etiquetas para el código!!! ;)

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

oohhh muchas gracias lo hare de ahora en adelante ^^ saludos.

ecfisa
08-10-2011, 04:30:30
Mil disculpas Ecfisa lo que pasa es que di enviar a mi mensaje, y luego me pidio esperar 30 segundos por lo cual espere los 30 y volvi a darle enviar, supongo por eso duplique , no fue mi intención u.u espero no vuelva a pasar jeje

Si esa situación me imaginé y por supuesto no pensé que fuera adrede. ;)

En esos casos si te es posible, seleccioná y copia el texto del mensaje y antes de volver a enviarlo hacé una recarga de la página con el navegador. Si el mensaje no fué enviado solo tenés que crearlo y pegar.

Un saludo. :)

rastafarey
10-10-2011, 22:04:32
usen un trigger

learning_delphi
27-10-2011, 20:35:58
Pido una disculpa por la ignorancia ya encontre la solución ^^

el detalle era que intentaba ingresar datos a una tabla sin asignarle la llave foranea(foreign key) de la tabla padre
por eso me complique tanto la vida por algo tan sencillo jeje , por si a alguien tan novato como yo le vuelve a suceder ,
le aconsejo checar bien los campos de sus tablas correspondientes a las padres e hijos saludos.