Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2018
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Driver free DBExpress para Firebird 3

Buenas

Que Drivers hay gratuitos para Firebird 3 en Delphi Community Tokyo. He encontrado uno.

https://sites.google.com/site/dbxfirebird/

Pero no me explica como configurar DBxdrivers.ini con los parametros correctos, solo lo explica por codigo, no me gusta tener solo esta posibilidad.

otra cosa.

En Delphi Community en Database Explorer en la parte de DBExpress , solo tengo 4 conexiones Interbase Lite, Interbase, MySQL y SQLite.
¿Como añado la conexion a Firebird?

Saludos.
Responder Con Cita
  #2  
Antiguo 06-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esos son los mejores, y además libres y gratis.
Viene un readme.html que explica cómo configurar para firebird, es muy simple, no creo que tengas problemas.
Responder Con Cita
  #3  
Antiguo 06-09-2018
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Cita:
Empezado por brakaman Ver Mensaje
Buenas

otra cosa.

En Delphi Community en Database Explorer en la parte de DBExpress , solo tengo 4 conexiones Interbase Lite, Interbase, MySQL y SQLite.
¿Como añado la conexion a Firebird?

Saludos.
Alguien que tenga la version Profesional me puede indicar si en el Database Explorer, seccion DBExpress aparece el driver para Firebird o solo esta en la Version Enterprise en adelante.

Saludos.
Responder Con Cita
  #4  
Antiguo 17-09-2018
carnace carnace is offline
Miembro
 
Registrado: feb 2008
Ubicación: Yopal, Casanare, Colombia
Posts: 27
Poder: 0
carnace Va por buen camino
Buenas noches

A mi si me ha funcionado en Delphi 10.2 Community Edition en windows 10 de las dos formas, tanto en código como en el DataExplorer, aunque si ha sido confuso la forma de instalar el driver, sobre todo dónde colocar el archivo dbx4fb.dll.
Resumo cómo lo instalé por si le sirve a alguien:
1. Descargué la versión dbxFirebird.4.1.v56 y la descomprimí, aparecen tres carpetas: Demo, Win32 y Win64
2. En la carpeta 'C:\Program Files (x86)\Embarcadero\Studio\19.0\bin' copié el archivo dbx4fb.dll que estaba en la carpeta Win32 descomprimida (este es el que yo uso porque el Firebird que tengo instalado es el de 32 bits)
En la carpeta 'C:\Program Files (x86)\Embarcadero\Studio\19.0\bin64' se copia el archivo dbx4fb.dll que está en la carpeta Win64 (este no lo copié porque sólo uso Firebird 32 bits)
3. En la carpeta Demo hay otra carpeta llamada project.d18 y dentro ésta hay otra carpeta llamada bin. Ahí se encuentra el archivo dbxdrivers.ini, el cual contiene la información que hay que adicionarle al archivo dbxdrivers.ini que se encuentra en C:\Users\Public\Documents\Embarcadero\Studio\dbExpress\19.0. NOTA: no reemplazar el archivo, sino editar y adicionar las lineas del archivo en la sección correspondiente, es decir, no borrar la información de los drivers que ya están. También hay que cambiar la línea correspondiente en VendorLib=C:\Program Files (x86)\Firebird\Firebird_3_0\fbclient.dll
4. Una vez hecho esto ya se puede entrar al IDE y se puede ejecutar el demo de la carpeta dbxFirebird.4.1.v56\Demo\project.d18
5. El demo no va a funcionar, pero se puede modificar de la siguiente manera:
Al ejemplo le coloqué un objeto TSQLConnection y en el Data Explorer le adicioné una nueva conexión de FirebirdConnection, la cual se configura de la forma tradicional y el código lo modifiqué adicionándole otro TButton:
Código:
unit uMainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, SqlExpr, WideStrings, DB;

type
  TMainForm = class(TForm)
    Button1: TButton;
    SQLConnection1: TSQLConnection;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation
uses
  DBXDynalink;   { esto es por el error de Unknown driver: FirebirdConnection de acuerdo con Support de la página
                https://groups.google.com/forum/#!searchin/dbxfirebird/Unknown$20driver$3A$20FirebirdConnection%7Csort:date/dbxfirebird/dcjOBhc-0rQ/2ZjElVd4HNUJ }
{$R *.dfm}

procedure TMainForm.Button1Click(Sender: TObject);
var C: TSQLConnection; i: integer;
begin
  C := TSQLConnection.Create(Self);
  try
    C.DriverName := 'FirebirdConnection'; //'FirebirdConnection';
    C.LibraryName := 'dbx4fb.dll';
    C.VendorLib := 'C:\Program Files (x86)\Firebird\Firebird_3_0\fbclient.dll';
    C.GetDriverFunc := 'getSQLDriverFIREBIRD';
  //  C.Params.Clear;
  //  C.Params.Add('User_Name=sysdba');
  //  C.Params.Add('Password=masterkey');
  //  C.Params.Add('Database=C:\BDFirebird\HVEQUIPOS3.fdb');
    for i:= 0 to C.Params.Count - 1 do
    begin
      if (Copy(C.Params[i],1,Length('VendorLib='))='VendorLib=') then
        C.Params[i]:= 'VendorLib=C:\BDfirebird\fbclient.dll'
      else if (Copy(C.Params[i],1,Length('Database='))='Database=') then
        C.Params[i]:= 'Database=C:\BDFirebird\HVEQUIPOS3.fdb'

    end;
    C.Open;
    if C.Connected then
      ShowMessage('Connection is active')
  finally
    C.Free;
  end;
end;

procedure TMainForm.Button2Click(Sender: TObject);
var i, Cont: integer; s: string;
begin
  SQLConnection1.Open;
  s := ''; Cont := 0;
  for i := 0 to SQLConnection1.Params.Count - 1 do
    if Copy(SQLConnection1.Params[i],1,Length('Database='))='Database=' then
      s :=  s + SQLConnection1.Params[i];
  for i:= 0 to  SQLConnection1.DataSetCount - 1 do
    Cont := Cont + 1;
  s := s + ' --- Contador datasets: ' + IntToStr(Cont);
  if SQLConnection1.Connected then
    ShowMessage('Connection is active to : ' + s);
end;

end.
https://ibb.co/knSXsK

Última edición por carnace fecha: 17-09-2018 a las 08:38:04.
Responder Con Cita
  #5  
Antiguo 17-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #6  
Antiguo 18-09-2018
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Buenos dias carnace.

Muchisimas gracias....

Voy a verlo con detenimiento, desde luego su uso no es muy intuitivo, si tengo mas dudas tendre que molestarte un poco mas, ya que veo que has trabajado el asunto.

Repito gracias amigo.
Responder Con Cita
  #7  
Antiguo 18-09-2018
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Hola:

Este es el problema que tengo.

y en el Data Explorer le adicioné una nueva conexión de FirebirdConnection, la cual se configura de la forma tradicional y el código lo modifiqué adicionándole otro TButton:

¿Como se adiciona la nueva conexion al Data Explorer?.

El error que me da que el TSQLConnection1 DBXConnections.ini not found.

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿como se escribe (desarrolla) un driver para DbExpress? JXJ Varios 1 09-09-2010 23:22:29
Driver PostgreSQL para dbExpress gatosoft PostgreSQL 2 09-01-2010 03:36:20
Driver dbExpress para DB2 jcporras DB2 1 02-10-2008 14:25:52
Que driver recomiendan para dbExpress con Oracle10g ? rolandoj Conexión con bases de datos 0 23-05-2008 17:58:32
free DBExpress driver raul parra Noticias 1 05-01-2004 10:00:24


La franja horaria es GMT +2. Ahora son las 15:36:47.


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
Copyright 1996-2007 Club Delphi