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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 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
  #2  
Antiguo 24-01-2009
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.411
Poder: 22
fjcg02 Va camino a la fama
Pon este código en el FormCreate

Código Delphi [-]
   Conexion.Connected:= False;
   Conexion.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;' +
     'Data Source= '+ wdatos+'Presupuestos.mdb;';
database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
De esta manera no se utiliza odbc, sino que se utiliza JetOleDB. Así se manipula la cadena de conexión del TADODatabase.
wdatos es el directorio donde está el mdb. Yo lo pongo en este procedimiento porque indico en un ini el directorio del mdb. No creo que te cueste demasiado adaptarlo para que seleccione el mdb el propio usuario.
Por otro lado puedes generar la cadena de conexión y revisarla con cualquier editor de texto.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



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
Base de datos local sin odbc ni aliases waremovil C++ Builder 3 09-01-2009 14:41:17
Conexion a base de datos Access con ODBC Nbull Conexión con bases de datos 4 26-12-2005 17:03:58
conexion mediante ODBC a la base de datos mysql, por linea de codigo de delphi sakuragi Conexión con bases de datos 21 15-03-2005 18:43:59
conectar base de datos mediando ODBC AdministratOR sakuragi Conexión con bases de datos 2 20-09-2004 20:51:57
Alguien sabe como crear un alias en Fuentes de datos ODBC (32 bits) por codigo ? edson Conexión con bases de datos 2 15-04-2004 15:57:26


La franja horaria es GMT +2. Ahora son las 12:14:11.


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