[firebase-br] Alias e BDE

Michel Hansson michel.hansson em tj.pa.gov.br
Sex Fev 25 10:35:29 -03 2005


Caro Fabio.
 Estou tendo este tipo de problema com o Firebird.
Consegui a solução com o access mas não com o Firebird.
Segue rotina. que peguei na Internet

procedure 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 MDB (Database file) failed!' );
      end;
      FindClose( srInfo );

      end;
    FreeLibrary( hLib );
    if fResult then
      ShowMessage( 'Create MDB (Database file) Sucefull created!' );
  end
  else
  begin
    ShowMessage( 'Unable to load ODBCCP32.DLL' );
  end;
end;


Espero ter ajudado

[]s
Michel Hansson


>
> Oi, gente.
>
> Eu sei que a lista de discussão é Firebird. Mas, se alguém puder me ajudar
ficaria agradecido...
>
>
> Seguinte, tenho uma aplicação que ainda trabalha com Access utilizando o
BDE. Gostaria de uma aplicativo que configurasse um alias, seja
automaticamente ou o usuário informando como parâmetro o caminho da Base de
Dados (isso seria o de menos). O que preciso evitar é que o usuário vá ao
Painel de Controle e crie uma fonte de dados.
>
> Alguém tem alguma aplicação neste estilo?
>
> Desde já, agradeço.
>
>
>
>
> "A maioria dos produtos de hardware vem com uma garantia; a maioria dos
produtos de software vem com uma negação de garantia." James Martin
>
> Fábio Paiva
> Horizonte Gestão Empresarial
> 8802-3687 e 4006-4026/4039/4081
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ---------------------------------
> Do you Yahoo!?
>  Yahoo! Sports -  Sign up for Fantasy Baseball.
>
>


----------------------------------------------------------------------------
----


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


----------------------------------------------------------------------------
----


No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.4.0 - Release Date: 22/02/2005



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.4.0 - Release Date: 22/02/2005




Mais detalhes sobre a lista de discussão lista