Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Copiar data de una tabla a otra Interbase (https://www.clubdelphi.com/foros/showthread.php?t=94673)

juanca2m 18-05-2020 06:53:24

Copiar data de una tabla a otra Interbase
 
Buenas,
Tengo el siguiente escenario, dos TStringgrid enlazadas (bind) cada una de ellas a dos tablas de Interbase. Lo que deseo es que cuando se añade un nuevo dato en la primera tabla y le haga el post, en uno de los campos de esta tabla se copie el campo seleccionado de la segunda tabla. Espero que sea claro en mi explicación, me esmeré en hacerlo entendible con pocas palabras. Quedo a la espera de alguna buena sugerencia. Muchas gracias.

JuanCa

kuan-yiu 18-05-2020 08:31:01

No sé como insertas los datos, si es con un método propio o mediante componentes, pero cuando quieras hacer una insercción en la que los datos procedan de múltiples sitios o se vuelva complejo yo te recomendaría usar una query. Algo así:
Código Delphi [-]
procedure insertarTabla1;
var
   insertar: TQuery;
begin
   insertar := TQuery.Create(Self);
   with insertar do
   try
      DatabaseName := miBD;
      sql.Text := 'insert into '+ nombreTabla1;
      SQL.Add('(dato1, dato2, dato3)');
      SQL.Add('values (:dato1, :dato2, :dato3)');
      ParamByName('dato1').AsInteger := numero;  //Aquí copias los datos que hayas calculado u obtenido por otros medios
      ParamByName('dato2').AsString := grid1.cells[i, j];   //Aquí copias los datos del grid de la tabla1
      ParamByName('dato3').AsString := grid2.cells[n, m];  //Aquí copias los datos del grid de la tabla2
      ExecSQL;
   finally
      free;
   end;
end;
Aquí tienes el código en una query que se crea y destruye para cada vez que haces la inserción. Si es algo que se va a hacer siempre yo lo incluiría como un componente fijo con la consulta incorporada y solo cargaría los parámetros concretos en cada caso.
De todos modos si aportas un ejemplo concreto o parte del código que usas te podría dar una mejor aproximación a tu problema.


La franja horaria es GMT +2. Ahora son las 04:42:48.

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