Fórum Criar odbc no firebird via codigo #49621

28/02/2005

0

Pessoal,

Alguem já implementou ou sabe como criar o driver odbc para firebird através de codigo em delphi ?

Agradeço antecipadamente,

Antero Mendes


Anteromendes

Anteromendes

Responder

Posts

28/02/2005

Afarias

Pq não usar um Driver já implementado? Seu objetivo é constuir seu próprio driver?


T+


Responder

Gostei + 0

28/02/2005

Anteromendes

Prezado Farias,

A ideia é criar o driver odbc das minhas aplicações, caso não exista, na inicialização do sistema.

Mesmo assim, agradeço a atenção dispensada, pois já consegui resolver o problema.

Atenciosamente,

Antero Mendes
www.comsys.com.br


Responder

Gostei + 0

28/02/2005

Afarias

Pelo q estou entendendo, vc não deseja cria um DRIVER ODBC, mas apenas uma DSN -- Um Driver é um conjunto de código executável (normalmente uma biblioteca) -- que faz interface ente dois ´sistemas´.

O q vc está querendo (acredito) é adicionar uma configuração de acesso (Data Source ou Fonte de Dados) e não um Driver.


T+


Responder

Gostei + 0

28/02/2005

Caninha51

Não sei oq ele quer, mas eu queria saber como cria um dsn pelo delphi.
Tenho instalado os drivers EasySoft IB6 ODBC e o Firebird/Interbase(r) Driver.

Ahh, outra coisa...
De quais arquivos(e suas localizações) eu preciso para rodar uma aplicação (ADO com firebird) na máquina do cliente?
Estou querendo criar um instalador que onde chegar é só instalar tudo de uma vez e rodar...

Alguém sabe? Afarias?

Valew, agradeço desde já!!!


Responder

Gostei + 0

28/02/2005

Anteromendes

Prezado Farias,

Acho q coloquei realmente de forma equivocada o que queria. Realmente era um DSN, o que como já disse, consegui resolver o problema.

Novamente agradeço a atenção dispensada.

Antero Mendes


Responder

Gostei + 0

28/02/2005

Bon Jovi

Caninha, aqui tem um exemplo:
http://www.experts-exchange.com/Databases/Interbase/Q_20298318.html

Sobre o ADO, vc só tem q instalar o MDAC caso não esteja instalado, de preferência a versão 2.8. O WinXP por exemplo já vem com o MDAC 2.7 instalado.


Responder

Gostei + 0

01/03/2005

Welington

Caso alguém queira instalar o driver basta entrar no link abaixo:

http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_60_odbc

Neste link você encontrará um intalador do driver via Inno Setup. Através do Inno Setup poderá ser criado o Driver além da DSN.

´Estou querendo criar um instalador que onde chegar é só instalar tudo de uma vez e rodar...´


No site da borland contém um instalador da BDE (via Inno Setup) e no
site www.jrsoftware.org, no forum, vc pode encontrar um instalador do Firebird (via Inno Setup)

Detalhe: nestes link´s encontram-se os ´FONTES´. Basta juntá-los em uma única instalação com os arquivos de sua aplicação.

Welington Diniz Miranda


Responder

Gostei + 0

01/03/2005

Afarias

o que como já disse, consegui resolver o problema.


Da próxima vez seria interessante postar a solução aqui, visto q poderia ajudar outros colegas com o mesmo problema (como visto nas mensagens acima)

Lembre-se q um fórum é feito de pergutas e respostas, se só postarmos perguntas, a coisa não anda.


T+


Responder

Gostei + 0

02/03/2005

Anteromendes

Companheir Farias,

Queira desculpar, realmente o forum é de todos e os conhecimentos devem ser compartilhados, então segue o código que fiz para resolver o problema.

unit untCriaODBCDriver;

interface

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

type
TfrmCriaODBCDriver = class(TForm)
Label1: TLabel;
edDSN: TEdit;
Label2: TLabel;
edExclusive: TEdit;
Label3: TLabel;
edDescricao: TEdit;
Label4: TLabel;
edDataBase: TEdit;
Label5: TLabel;
edDriver: TEdit;
Label6: TLabel;
edConfiguracao: TEdit;
Button1: TButton;
Label7: TLabel;
edDescricaoDriver: TEdit;
procedure CreateODBCDriver(Const cDSNName,cExclusive,cDescription,cDataBase,cDefaultPath,cConfigSql,cDriver: string);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmCriaODBCDriver: TfrmCriaODBCDriver;

implementation

{$R *.dfm}

procedure TfrmCriaODBCDriver.CreateODBCDriver(Const cDSNName,cExclusive,cDescription,cDataBase,cDefaultPath,cConfigSql,cDriver: string);
//
// Cria um Driver no ODBC
//
// Deve ser usado da seguinte forma
//
// CreateOdbcDriver(´TestDSN´,´1´,´Test Data´,´TestData.MDB´,´ODBCCP32´,´SQLConfigDataSource´,´Microsoft Access Driver (*.mdb)´);
//
type

TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR; lpszAttributes: LPCSTR ): BOOL; stdcall;

const
ODBC_ADD_DSN = 1; // Add data source
ODBC_CONFIG_DSN = 2; // Configure (edit) data source
ODBC_REMOVE_DSN = 3; // Remove data source
ODBC_ADD_SYS_DSN = 4; // add a system DSN
ODBC_CONFIG_SYS_DSN = 5; // Configure a system DSN
ODBC_REMOVE_SYS_DSN = 6; // remove a system DSN
var
pFn: TSQLConfigDataSource;
hLib: LongWord;
strDriver: string;
strHome: string;
strAttr: string;
strFile: string;
fResult: BOOL;
ModName: array[0..MAX_PATH] of Char;
srInfo : TSearchRec;
begin
Windows.GetModuleFileName( HInstance, ModName, SizeOf(ModName) );
strHome := ModName;
while ( strHome[length(strHome)] ´\´ ) do
Delete( strHome, length(strHome), 1 );
strFile := strHome + cDatabase; // Test Access Rights (Axes = Access)
hLib := LoadLibrary( pChar(cDefaultPath) ); // load from default path
if( hLib NULL ) then
begin
@pFn := GetProcAddress( hLib, pChar(cConfigSql) );
if( @pFn nil ) then
begin
// force (re-)create DSN
strDriver := cDriver;
strAttr := Format( ´DSN=¬s´+#0+
´DBQ=¬s´+0+
´Exclusive=¬s´+0+
´Description=¬s´+0+0,
[cDSNName,strFile,cExclusive,cDescription] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ´Create DSN (Datasource) failed!´ );
// test/create MDB file associated with DSN
if( FindFirst( strFile, 0, srInfo ) 0 ) then
begin
strDriver := cDriver;

strAttr := Format( ´DSN=¬s´+0+
´DBQ=¬s´+0+
´Exclusive=¬s´+0+
´Description= ¬s´+0+0+
´CREATE_DB=´¬s´´0+0,
[cDSNName,strFile,cExclusive,cDescription,strFile]);
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ´Create DFB (Database file) failed!´ );
end;
FindClose( srInfo );

end;
FreeLibrary( hLib );
if fResult then
ShowMessage( ´Create FDB (Database file) Sucefull created!´ );
end
else
begin
ShowMessage( ´Unable to load IscDbc.DLL´ );
end;
end;

procedure TfrmCriaODBCDriver.Button1Click(Sender: TObject);
begin
CreateODBCDriver(edDSN.Text,edExclusive.Text,edDescricao.Text,edDataBase.Text,edDriver.Text, edConfiguracao.Text, edDescricaoDriver.Text);
end;

end.

Espero que possa ajuda a quem precisar.

T+,

Antero Mendes
www.comsys.com.br


Responder

Gostei + 0

02/03/2005

Afarias

Obrigado!

Tenho certeza vai ser boa referência para muitos colegas
:D



T+


Responder

Gostei + 0

30/07/2012

Unisis Ltda

Bom gostaria de saber que dados ele passou para os parâmetros (edDSN.Text,edExclusive.Text,edDescricao.Text; ...)

CreateODBCDriver(edDSN.Text,edExclusive.Text,edDescricao.Text,edDataBase.Text,edDriver.Text, edConfiguracao.Text, edDescricaoDriver.Text);
pois estou tentando porém sem sucesso
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar