Existe sim, segue o código abaixo:

Abraços,

Fernando dos Santos Sousa

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;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Anderson escreveu:
> existe como configurar o odbc via programação?
> estou utilizando ado e o odbc para dar o caminho do bd...
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>  



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a