Ir al contenido


Foto

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


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

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 03 enero 2009 - 05:16

Introducción


Este tutorial pretende mostrar la facilidad de conectarse a una base de datos Firebird usando Turbo Delphi sin embargo debería de funcionar con otras versiones usando las pestañas IBX o Interbase.

Esta primera parte solo se va a enfocar a hacer una conexión a través de una simple consulta SQL y mostrar los datos de una tabla.

En los tutoriales siguientes haremos cosas mas interesantes y productivas (al menos eso espero).......

He dejado los nombres de los componentes en su forma original para mayor comprensión de este tutorial, sin embargo, es recomendable que asignes nombres acordes a tu proyecto para evitar confusiones.

Nota: Asumo que ya tienen una base de datos Firebird creada para realizar este ejercicio.


Preparando la forma visual


Comencemos creando un nuevo proyecto en el IDE de Turbo Delphi presionando el enlace "New Project" o desde el Menú File-->New


Imagen Enviada



Veremos una ventana donde vamos a seleccionar una aplicación VCL dentro de la categoría Delphi Projects.


Imagen Enviada



A continuación "pegaremos" los siguientes componentes en la forma que ya tenemos abierta y decida donde los colocará.


[img width=417 height=480]http://egostar.delphiaccess.com/imagenes/ibxPartI/AddComp.PNG[/img]



Veamos un ejemplo de como se vería una vez que se ha decidido donde estará cada componente.


Imagen Enviada



Con esto hemos terminado la parte visual, como ven hasta ahora no hemos escrito nada de código en nuestro proyecto.


Preparando la conexión con la base de datos


En este capitulo vamos a ver como se realiza la conexión con la base de datos usando los componentes que agregamos a la forma.

Abrimos la pantalla de Editor del componente IBDatabase1, dando doble click del mouse.

En esta ventana realizaremos lo siguiente:

1. Conexión

Elegimos conexión remota (me parece la mejor opción)
Asignamos el Servidor (en este caso mi maquina es MOVIL)
Asignamos el Protocolo (TCP)
Asignamos la base de datos (Ruta\base.fdb)


2. Parámetros

Usuario (SYSDBA)
Contraseña (masterkey)
Role (3)
Conjunto de carácter (None)


Imagen Enviada



3. Probar conexión

Probemos la conexión presionando el botón Test y si es correcta nos mostrará la siguiente ventana.


Imagen Enviada



Si todo esta bien la conexión será exitosa, en caso contrario habrá que verificar los parámetros asignados.

Una vez que te asegures que esta conexión es exitosa ya estamos listos para acceder a los datos.


Generar la sentencia SQL y ejecutar el programa


Pues bien, ya le dimos forma a nuestro proyecto, ahora corresponde realizar una simple consulta SQL para acceder a los datos y mostrarlos en el DBGrid.

Para ello, necesitamos asignar las propiedades de cada componente para “ligarlos”, esto lo haremos de la siguiente manera:

Asignamos en la propiedad DefaulTransaction del componente IBDataBase1 el componente IBTransaction1
Asignamos en la propiedad DataBase del componente IBQuery1 el componente IBDataBase1
Asignamos en la propiedad DataSet del componente DataSource1 el componente IBQuery1
Asignamos en la propiedad DataSource del componente DBGrid1 el componente DataSource1
Asignamos en la propiedad DataSource del componente DBNavigator1 el componente DataSource1

En este momento ya estamos listos para generar una consulta en el componente IBQuery1, para ello demos click derecho del mouse y seleccionamos EditSQL o bien en la propiedad SQL del componente nos mostrará la siguiente ventana :


Imagen Enviada



En esta ventana podemos escribir directamente en el editor SQL la sentencia que deseamos o de lo contrario seleccionamos la tabla que deseamos, presionamos el botón Add Table to SQL, nos mostrará la sentencia básica del SELECT, posteriormente seleccionamos ( * ) o los campos que deseamos y presionamos al botón Add Fields to SQL.

Presionamos el botón OK y ya está lista nuestra consulta.

Asigne la propiedad Kind del TBitBtn que agregamos a la Forma como bkClose.

Ahora, solo nos falta ejecutar la consulta, usted puede decidir en que momento la ejecutará, puede ser por ejemplo en el evento OnShow de la Forma.



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




Para cerrar la consulta use el evento OnClose de la Forma.




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




Compile y ejecute el programa y verá algo como esto:


Imagen Enviada



Ahora podrás recorrer el DataSet usando el DBNavigator el cual sólo tendrá habilitados los botones de movimiento dentro del DataSet, los botones de edición no ya que estamos usando una simple consulta, en el siguiente tutorial veremos como agregar, modificar y borrar los registros de la base de datos.

Con esto hemos terminado el primer tutorial de conexión con Firebird desde Turbo Delphi, como ves fue algo muy sencillo de hacer y con solo dos lineas de código.


Salud OS
  • 0

#2 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 16 marzo 2009 - 12:11

Para los que somos quedaditos, pordrias colocar un post de como crear la base de datos en firebir  :$
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 16 marzo 2009 - 12:30

Para los que somos quedaditos, pordrias colocar un post de como crear la base de datos en firebir  :$


No soy Egostar pero igual te respondo, espero que no te moleste.
Pues... si, se puede elaborar un pequeño manual o tutorial.

Por el momento considero que éste que ya está escrito puede serte útil ;).

Saludos,
  • 0

#4 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 16 marzo 2009 - 01:37


  Hola gracias por la informacion voy a leer a ver que pasa  |-)
  • 0




IP.Board spam blocked by CleanTalk.