lunes, 10 de enero de 2011

Como conectar Delphi con Firebird

Bueno vamos a recordar un poco...

primero que todo voy mostrar como crear y registrar nuestra base datos de tipo Firebird 1.5 utilizando la interfaz grafica IBExpert, no voy a profundizar mucho en ese tema.

1. Creamos la base de datos:
2. Configuramos la Base de datos:


3. Despues registramos la Base de datos Con la version de Firebird que este utilizando (En mi caso la 1.5):
Bueno lo que sigue despues es crear las tablas de acuerdo a la modelacion del proyecto.

Ahora vamos con la conexion delphi 7 con Firebird, Asumamos que ya tenemos la estructura en delphi del proyecto por ejemplo un modulo, y una forma de clientes, en el modulo debemos terner inicialmente 3 componentes que los encontramos en la pestaña Interbase y Data access: 

el TIBdatabase, TIBStoredProc, TIBTransaccion asi:




en este caso el componente le coloque el nombre rutabd y se enlaza con el conponente que le puse por nombre transaccion, tambien le colocamos la ruta donde esta la tabla incluyendo el nombre y la extension en el ejemplo COMS.FDB que es la extension de firebird, despues agregamos el componente TIBStoredProc:


el cual se conecta con la ruta y con la transaccion, este es para porder acceder a los procedimientos que configuremos dentro de la base de datos, que mas adelante voy a explicar en otra entrega.
ahora seguimos con el componente TIBTransaccion, y su configuracion:

para porder ejecutar todas las operaciones de altas, bajas y modificaciones almacenadas en nuestra base de datos. A continuacion muestro como realizar la conexion con la base de datos en forma de ejemplo:



despues de esto solo resta llamar los procedimientos desde delphi lo cual no lo voy a explicar en esta entrega esperemos para el siguiente paso.


Deja tu comentario o agradecimiento...

7 comentarios:

  1. hola que tal, encontre tu pagina al andar buscando una solucion a mi problema, soy novato y ando haciendo un sistema para meter user y pass,, en mi caso tengo tipo: admin, gerente y caja,,, luego al seleccionar 1 de estos que ya en el sistema esta por default me haga una busqueda en la bd y me aparescan quienes son admin, gerente o caja,,, y de ahi introducir el pass,, ya cree mi bd ya hice lo que tienes en tu pagina para conectar... pero ahora como le hago para que seleccione y me compare si el pass es correcto,, saludos,,, y excelente pagina

    ResponderEliminar
  2. Hola como estas;
    Bueno según la idea que planteas, la base datos la tienes organizada por grupos de usuario, y que al entrar a la ventana de control de acceso, muestre los tipos de usuarios en algún componente así como un combobox y que después de escoges muestre todos los usuarios que pertenecen a esa categoría y que al escoger uno de ellos pida la clave para acceder, Si esa es la idea se puede hacer; lo único es que no es recomendable por cuestiones de seguridad mostrar todos los usuario al momento de hacer login, lo que te recomiendo es solo manejes el nombre de usuario y la clave y ya internamente valides que tipo de usuario es para que le asignes los privilegios respectivos.
    Para comparar la clave puedes usar lo siguiente por ejemplo:
    with DMo.query2 do begin //este es componente IBQuery

    Close;
    Sql.Clear;
    Sql.Add('Select grupos.grupo, usuarios.nick, usuarios.clave From grupos, usuarios Where grupos.codigo='''+Grupo.Text);
    Sql.Add('And usuarios.nick ='''+PUsuario.Text+''' And usuarios.clave =Md5('''+PClave.Text+''')');//en el caso que tengas encriptacion md5
    Open;
    If RecordCount > 0 Then
    Begin
    //aqui haces la respectivas validaciones de session, tipo…
    fMenu.Show;
    End;


    end;
    En esta consulta lo que se hace es consultar grupos y usuarios si el resultado de la consulta e mayor que cero quiere decir que encontró al usuario y pasara a la la ventana de menú si no mostrara un mensaje de error de acceso. Espero que te sea útil mi ayuda saludos…

    ResponderEliminar
  3. Hola de nuevo, excelente tu respuesta, pero la verdad soy novatillo, no se lo de encriptacion md5(no estaria mal que publicaras algo sobre esto, ya que me intereso lo de seguridad), y si use un combobox, pero pensaba algo sencillo jejeje, lo que hice en la base fue crear un campo llamado nivel y si es admin poner el valor de 1, si es gerente valor de 2... ya en delphi puse si selecciono en el combobox itemindex = 0 (este seria el administrador) hacer la busqueda(que claro no se como hacerlo) y mostrarme la inf. en el otro combobox y luego hacer la comparacion de la clave(el cual tampoco se)... pero la verdad como contestaste es magnifico... en mi bd solo tengo 3 campos usuario,clave,nivel con 1 sola tabla,,, pero acepto sugerencias para hacer mas seguro mi sistema... un saludo cordial

    ResponderEliminar
  4. Hola amigo puedes verificar la encriptacion MD5 en la siguiente entrada:

    http://escribojava.blogspot.com/2011/02/algoritmos-de-encriptacion-md5-o-sh1-en.html

    y Lo de Guardar, Modificar y Borrar con procedimientos almacenados lo encuentras en esta entrada:

    http://escribojava.blogspot.com/2011/02/guardar-modificar-y-eliminar-en-delphi.html

    ResponderEliminar
  5. Se te agradece la ayuda,,, esperando proximas publicaciones... un abrazo

    ResponderEliminar
  6. Hola , que tal, he intentado seguir tu guia, y me he encontrado con los siguientes problemas...
    Lo primero tengo firebird 2.5,y he tenido primero que registrar, y luego crear la bd, no me deja al contrario...
    También lo tengo que hacer como remote (localhost), no me deja como local, y luego cuando intento crear el trigger, me da un error, en el cual no me reconoce el comando
    create sequence...
    He intentado seguir, y cuando intento crear el procedure, me da error en la palabra or del create or replace???, alguna sugerencia?, gracias...

    ResponderEliminar
  7. ok voy a verificar con esta version y te informo... listo

    ResponderEliminar