Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Insercion de nuevo registro en Interbase 6 (https://www.clubdelphi.com/foros/showthread.php?t=47801)

gorsan 07-09-2007 08:20:51

Insercion de nuevo registro en Interbase 6
 
Hola a todos.
La duda que les planteo es la siguiente: ¿es posible que Interbase 6 se comporte como BDE en la inserccion de un nuevo registro en la Base de Datos?, es decir, inmediatamente que se produce la insercion del nuevo registro en la BD, el que lo ha insertado "ya lo vea" en un Grid o similar.
Intuyo que es un tema relacionado con las trasacciones en Interbase. Me interesa que lo vea quien lo inserta, no es tan importante que lo vean los otros puestos desde donde se ejecuta el programa, pero sí el puesto de red desde donde se inserta el nuevo registro.
Estoy casi seguro que este efecto es posible pero no se como hacerlo.
El modo en que inserto un nuevo registro es el siguiente, utilizo para la parte cliente DELPHI 7:
Código Delphi [-]
procedure TForm2.BitBtn1Click(Sender: TObject);
var
  NumCarnet: integer;
  LetraNif: string;
  Cad: String;
begin
Cad:=CalculaLongitud;
NumCarnet:=StrToInt(Cad);
LetraNif:=NIF(NumCarnet);
with DM.IBSP1 do
 begin
  Params[0].Value:=StrToInt(CalculaLongitud);  //DNI
  Params[1].Value:=LetraNif;                   //Letra del nif
  Params[2].Value:=Edit3.Text;                 //Primer apellido
  Params[3].Value:=Edit4.Text;                 //Segundo apellido
  Params[4].Value:=Edit5.Text;                 //Nombre
  Params[5].Value:=ComboBox1.Text;             //Sexo
  Params[6].Value:=StrToDate(MaskEdit2.Text);  //Fecha de nacimiento
  Params[7].Value:=Edit8.Text;                 //Nombre del padre
  Params[8].Value:=Edit9.Text;                 //Nombre de la madre
  Params[9].Value:=Edit10.Text;                //Lugar de nacimiento
  Params[10].Value:=ComboBox2.Text;            //Alta_Baja
  Params[11].Value:=Edit11.Text;               //Activiadad
  Params[12].Value:=Edit12.Text;               //Entidad
  Params[13].Value:=Edit13.Text;               //Domicilio entidad
  Params[14].Value:=Edit14.Text;               //Telefono entidad
  Params[15].Value:=Edit15.Text;               //Fax entidad
  Params[16].Value:=StrToDate(MaskEdit1.Text); //Fin de autorizacion
  Params[17].Value:=Memo1.Lines.Text;          //Lugares autorizados
  Params[18].Value:=Memo2.Lines.Text;          //Observaciones
  Params[19].Value:=Edit18.Text;               //Marca de coche
  Params[20].Value:=Edit19.Text;               //Modelo coche
  Params[21].Value:=Edit20.Text;               //Matricula coche
  Prepare;
  try
   ExecProc;
  finally
   UnPrepare;
  end;
 end;
Close;
end;
Es decir, ejecuto este procedimiento almacenado pero luego no se que tengo que hacer para que a la vuelta al formulario principal (donde estan todos los registros de la tabla principal) aparezca "ya" este nuevo registro.
No se si me he hecho entender. Llevo detras de este tema demasiado tiempo para que mis neuronas aguanten mas por eso les pido una ayuda. Muchas gracias de antemano.

Gabo 07-09-2007 10:51:31

Bueno, no se exactamente cómo lo estás haciendo... pero te puedo explicar como lo hago yo...

Los DBGrid los enlazo a un DataSource el cual se llena de datos desde un Query. Por lo tanto, cuando inserto, modifico o elimino un registro, cierro y abro la Query nuevamente, con lo que el cambio se refleja en el DBGrid.

gorsan 07-09-2007 11:31:09

Hola Gabo. Gracias por tu respuesta.
Los datos de la tabla sobre la que inserto los nuevos registros o los borro estan contenidos en un IBDataSet que a su vez esta contenido en un Modulo de datos y el DataSource que esta enlazado con ese IBDataSet es el que le pasa los datos al Grid o los data-aware.


La franja horaria es GMT +2. Ahora son las 03:13:59.

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