Ver Mensaje Individual
  #3  
Antiguo 23-01-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
Hola, te dejo este codigo (ya antiguo). Con el puedes borrar y crear alias, etc...

Código Delphi [-]
unit odbcacces;


interface
        function AddDSN(const DSN, Database, Description: String): Boolean;
        function RemoveDSN(const DSN: String): Boolean;
        function RepairDB(const Database: String): Boolean;
        function CompactDB(const Database1, Database2: String): Boolean;

implementation

uses
        Windows, sysutils;


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 ODBC_REMOVE_DEFAULT_DSN = 7; // remove the default DSN

function SQLConfigDataSource( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR;
lpszAttributes: LPCSTR): BOOL; stdcall; external 'ODBCCP32.DLL';

function AddDSN(const DSN, Database, Description: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar( 'DSN='
+ DSN + #0 + 'Driver=ODBCJT32.DLL'#0 + 'DBQ=' + Database + ''#0 + 'DefaultDir=' +
ExtractFilePath(Database) + #0 + 'Description=' + Description + #0 + 'FIL=MSAccess'#0 + 'UID=Admin'#0)); end;

function RemoveDSN(const DSN: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_REMOVE_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'DSN=' + DSN + #0)); end;

function RepairDB(const Database: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'REPAIR_DB=' + Database + #0 + 'UID=Admin'#0 + 'PWD=PWSWAN'#0)); end;

function CompactDB(const Database1, Database2: String): Boolean; begin Result :=
SQLConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar(
'COMPACT_DB=' + Database1 + ' ' + Database2 + ' General'#0 + 'UID=Admin'#0 +
'PWD='#0)); end;

end.

Asi, si quieres 'cargar' una base de datos, tansolo tendras que borrar y recrear el alias. Te recomiendo, de todas maneras, que pases a ADO o a SQL, pues estas cosas se simplifican mucho. Saludos.
Responder Con Cita