Ir al contenido



Foto

Conexión con firebird utilizando componentes IBX (Parte II)


  • Por favor identifícate para responder
10 respuestas en este tema

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 03 enero 2009 - 07:45

Introducción

Continuamos desarrollando los tutoriales y en esta segunda parte, como ya les había mencionado, vamos a entrar en conceptos mas específicos.

En este tutorial aprenderemos como agregar, modificar y borrar registros a través de nuestra aplicación que ya hemos creado en el primer tutorial de esta serie y que solo nos mostraba los datos de la tabla en la forma.


Preparar la forma

Para desarrollar este ejemplo vamos a usar el componente IBDataSet que se encuentra en la pestaña Interbase (IBX en otras versiones de Delphi) colocándolo en nuestra forma y eliminamos el componente IBQuery que usamos anteriormente.

Imagen Enviada


Modificar las ligas de los componentes

Una vez que ya hemos eliminado el componente IBQuery y agregamos el componente IBDataSet, tenemos que ligarlos entre ellos, siga estos pasos:


Asignamos en la propiedad DataBase del componente IBDataSet el componente IBDataBase1
Asignamos en la propiedad DataSet del componente DataSource1 el componente IBDataSet



Configurar las propiedades del IBDataSet


Para configurar nuestro IBDataSet, presiona el botón derecho de tu mouse sobre el componente y selecciona DataSet Editor,


Imagen Enviada



Verás la siguiente ventana, donde debes presionar el botón Get Table Fields


Imagen Enviada



Después selecciona la llave que tengas asignada en tu tabla y presiona el botón Select Primary Keys, en este caso solo seleccionaré ID_CLIENTE que es mi llave primaria,


Imagen Enviada



Como último paso presionamos el botón de Generate SQL para que Delphi se encargue de crear las sentencias SQL apropiadas, que bien ¿no?, todo lo hace nuestro querido Delphi.


Imagen Enviada



Después de haber presionado el botón anterior nos aparecerán las sentencias SQL para cada uno de los procesos que se requieren, Modificar, Insertar, Borrar y Refrescar.


Imagen Enviada



Estas son las sentencias SQL que Delphi ha creado por mi.


[img width=640 height=317]http://egostar.delphiaccess.com/imagenes/ibxPartII/SQLText.PNG[/img]


Ejecutar el Proyecto


Ahora, solo nos falta modificar el código que ya tenemos en nuestro proyecto en los eventos OnShow y OnClose. Solo hay que cambiar IBQuery por IBDataSet en ambos eventos.




delphi
  1. procedure TForm1.FormShow(Sender: TObject);
  2. begin
  3.   IBDataSet1.Open;
  4. end;





delphi
  1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3.   IBDataSet1.Close;
  4. end;




Ejecutamos nuestro proyecto y ya podrémos realizar las operaciones deseadas.


[img width=640 height=349]http://egostar.delphiaccess.com/imagenes/ibxPartII/ConDatos.PNG[/img]



Bueno, seguiremos trabajando con estos tutoriales, aún estamos en lo básico y no hemos contemplado algunas cuestiones propias de la base de datos, así que tengan paciencia y pronto seguiremos con está serie de artículos.

Salud OS
  • 0

#2 Kipow

Kipow

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 228 mensajes
  • LocationGuatemala

Escrito 04 enero 2009 - 08:28

Yo solo suberiria la utilizacion de IBQuery+Dataseprovider+Clientdataset  considerando el que no haya soporte ni garantias de que IBX nos vaya a funcionar mucho tiempo con las nuevas versiones de Firebird. Por el resto buen tutorial.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 04 enero 2009 - 08:35

Yo solo suberiria la utilizacion de IBQuery+Dataseprovider+Clientdataset  considerando el que no haya soporte ni garantias de que IBX nos vaya a funcionar mucho tiempo con las nuevas versiones de Firebird. Por el resto buen tutorial.


Hola amigo Kipow, efectivamente, se comenta que los IBX ya no funcionarán mas tiempo con las nuevas versiones de Firebird, aunque yo tengo mis dudas al respecto, estos primeros tutoriales son para que vayamos aprendiendo la base de la conectividad con Firebird, en tutoriales posteriores vamos a ver precisamente otras formas de conectividad y de utilización de componentes.

Gracias por el comentario.

Salud OS

PD, te invito a participar con algún tutorial sobre el tema, sería muy interesante ver otras técnicas.
  • 0

#4 Ayla

Ayla

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 98 mensajes

Escrito 22 enero 2009 - 05:07

También utilizo los componentes IBX y espero que le den soporte por mucho tiempo.

Destacaría también otros componentes IBX :

-FIBSecurityService que está en la paleta de Interbase Admin.

Con este componente se puede configurar la conexión a la base de datos, conexión local o remota. El usuario y la password, protocolo, etc. Lo utilizo para controlar la conexión a la Base de datos, puedes saber: si no está en marcha el motor de Base de datos, si el usuario y la password no es correcta, si no ha encontrado la base de datos, si la bd está corrupta, si la bd es de sólo lectura, ect.


-TIBScript

Ejecuta scripts. Muy útil sobre todo cuando ya tienes instalada tu aplicación en el cliente y deseas modificar cualquier cosa de la base de datos.

Un ejemplo: ( TIBScript (IBS) tiene que estar enlazado a un TIBTransaction (t) )



delphi
  1. if not t.InTransaction then
  2.     t.StartTransaction;
  3.  
  4. IBS.Script.Text := ' ALTER TABLE CLIENTES ' +
  5.                         ' ADD MOV D_SN '  ;  //* Añadimos un campo más a la tabla de Clientes. *//
  6.  
  7.   try
  8.     IBS.ExecuteScript;
  9.     t.commit;
  10.     ShowMessage('Se ha modificado la BD CON EXITO');
  11.   except
  12.     t.Rollback;
  13.     ShowMessage('NO se ha podido modificar la BD);
  14.   end;




-TIBStoredProc

Ejecuta procedimientos almacenados.

Un ejemplo:( TIBStoreProc (IBP) tiene que estar enlazado a un TIBTransaction (tsp) )



delphi
  1.   tsp.Active := False;
  2.   IBSP.StoredProcName := 'ZONAS';  //*Nombre del procedimiento almacenado.*//
  3.  
  4.   if not tsp.InTransaction then
  5.     tsp.StartTransaction;
  6.  
  7.   //* Si el procedimiento almacenado tiene parámetros *//
  8.   IBSP.ParamByName('IDREP').AsInteger  :=    IB.FieldByName('IDREP').AsInteger;
  9.   IBSP.ParamByName('IDCAR').AsInteger  := IB.FieldbyName('ID').AsInteger;
  10.  
  11.   IBSP.ExecProc;
  12.   tsp.Commit;



Los dos últimos son para mí fundamentales  (y)


  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.408 mensajes
  • LocationRepública Dominicana

Escrito 22 enero 2009 - 09:13

Muy buen aporte Ayla (y).

Saludos.
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 22 enero 2009 - 09:27

Hola Ayla Bienvenida al foro :)

Muchas gracias por el aporte, es muy bueno.

Salud OS
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.260 mensajes
  • LocationArgentina

Escrito 22 enero 2009 - 11:29

También utilizo los componentes IBX y espero que le den soporte por mucho tiempo.

Destacaría también otros componentes IBX :

-FIBSecurityService que está en la paleta de Interbase Admin.

Con este componente se puede configurar la conexión a la base de datos, conexión local o remota. El usuario y la password, protocolo, etc. Lo utilizo para controlar la conexión a la Base de datos, puedes saber: si no está en marcha el motor de Base de datos, si el usuario y la password no es correcta, si no ha encontrado la base de datos, si la bd está corrupta, si la bd es de sólo lectura, ect.


-TIBScript

Ejecuta scripts. Muy útil sobre todo cuando ya tienes instalada tu aplicación en el cliente y deseas modificar cualquier cosa de la base de datos.

Un ejemplo: ( TIBScript (IBS) tiene que estar enlazado a un TIBTransaction (t) )



delphi
  1. if not t.InTransaction then
  2.     t.StartTransaction;
  3.  
  4. IBS.Script.Text := ' ALTER TABLE CLIENTES ' +
  5.                         ' ADD MOV D_SN '  ;  //* Añadimos un campo más a la tabla de Clientes. *//
  6.  
  7.   try
  8.     IBS.ExecuteScript;
  9.     t.commit;
  10.     ShowMessage('Se ha modificado la BD CON EXITO');
  11.   except
  12.     t.Rollback;
  13.     ShowMessage('NO se ha podido modificar la BD);
  14.   end;




-TIBStoredProc

Ejecuta procedimientos almacenados.

Un ejemplo:( TIBStoreProc (IBP) tiene que estar enlazado a un TIBTransaction (tsp) )



delphi
  1.   tsp.Active := False;
  2.   IBSP.StoredProcName := 'ZONAS';  //*Nombre del procedimiento almacenado.*//
  3.  
  4.   if not tsp.InTransaction then
  5.     tsp.StartTransaction;
  6.  
  7.   //* Si el procedimiento almacenado tiene parámetros *//
  8.   IBSP.ParamByName('IDREP').AsInteger  :=    IB.FieldByName('IDREP').AsInteger;
  9.   IBSP.ParamByName('IDCAR').AsInteger  := IB.FieldbyName('ID').AsInteger;
  10.  
  11.   IBSP.ExecProc;
  12.   tsp.Commit;



Los dos últimos son para mí fundamentales  (y)


Hola Syla, los dos últimos si los utilizo. El que nunca he usado es el primero que comentas. Siempre lo veo, pero nunca me puse a "jugar" con él. ¿Sería algo parecido a trabajar con gsec?¿O estoy confundido?

Saludos,
  • 0

#8 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 22 enero 2009 - 12:19

Así mismo es amigo Delphius.

Es para tenerlo visual y no tener que entrar al command....  :)
  • 0

#9 Kipow

Kipow

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 228 mensajes
  • LocationGuatemala

Escrito 22 enero 2009 - 04:54

El TIBScript es una gran herramienta, con ella mantengo actualizado mi base de datos desde la misma aplicacion.
  • 0

#10 Ayla

Ayla

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 98 mensajes

Escrito 23 enero 2009 - 05:05

Otro más que utilizo:

-TIBSQL : Ejecuta Sentencias SQL.

Ejemplo: ( TIBSQL (IBSQL) tiene que estar enlazado a un TIBTransaction (t) )



delphi
  1. with IBSQL do begin
  2.       SQL.Clear;
  3.       SQL.Text := 'UPDATE clientes SET telf = :telf  ' +
  4.                         ' WHERE ID = :ID  ';
  5.  
  6.       if not t.InTransaction then
  7.         t.StartTransaction;
  8.  
  9.     ParamByName('telf').AsString := vTlf;
  10.     ParamByName('ID').AsInteger := vID;
  11.  
  12.     ExecQuery;
  13.     t.Commit;
  14. end;




Así mismo es amigo Delphius.

Es para tenerlo visual y no tener que entrar al command....  :)


Para mí es bastante útil porque una vez terminadas las aplicaciones, casi nunca voy a instalarlas al cliente. Genero una instalación. Otra persona es la que normalmente se encarga de instalarla, así puedo controlar posibles errores que pueda tener al hacer dicha instalación.



  • 0

#11 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.988 mensajes
  • LocationMéxico

Escrito 23 enero 2009 - 10:01

Hola

Muchas gracias por tus aportes Ayla, muy interesantes y por supuesto muy útiles. :)

Salud OS
  • 0