Tema: Crear Odbc
Ver Mensaje Individual
  #3  
Antiguo 18-01-2011
Avatar de IrvineEiko
IrvineEiko IrvineEiko is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 1
Reputación: 0
IrvineEiko Va por buen camino
hola

Hola, primero dar la bienvenida a todos los usuarios de clubdelphi este es mi primer post y no quisiera dar mucho la vara.

pasa que he leido un post que escribisteis de como crear un ODBC para Acces que te redireccionaba a esta pagina

( que no me deja poner enlaces ) Una pagina por hay

en principio me parecio simple y lo decidi a probrar pero luego ha pasado que no me funcionaba y me decidio a escribir a ver si alguien sabe porque.

alla va la duda: he creado una aplicacion que funciona con una base de datos access 2007 (.mdb) y cuando extraiga en otro ordenador el programa necesitara crearse el ODBC correspondiente para que la BD funcione en dicho PC. La pagina pide que crees un Unit llamado ODBC con las instrucciones que configuran el ODBC de una DLL y agregas la UNIT a tu proyecto y nada mas tienes que llamar la funcion correspondiente con los parametros que a ti te interesen como el tipo de driver, el nombre de la base de datos, el path del archivo, usuario y contraseña. Entonces me da el siguiente problema. El parametro no es una cadena sino un puntero a una cadena y he convertido la cadena con un PChar y no funciona, tambien he probado a convertir cada parametros ( que esta metido dentro de la misca cadena y separado por el separador /0 ) en un PChar y tampoco va. Os pego el codigo. Gracias de antemano.

// Unit ODBC

unit ODBC;
interface
uses
Windows;
Const
ODBC_ADD_DSN=1;
ODBC_CONFIG_DSN=2;
ODBC_REMOVE_DSN=3;
ODBC_ADD_SYS_DSN=4;
ODBC_CONFIG_SYS_DSN=5;
ODBC_REMOVE_SYS_DSN=6;
ODBC_REMOVE_DEFAULT_DSN=7;
function SQLConfigDataSource(HwndParent:HWND;FRequest:WORD;Driver:PChar;
Attributes:Pchar):boolean;Stdcall;
function SQLGetInstalledDrivers(Size:String;Buff:WORD;BuffOut:WORD):boolean;Stdcall;
implementation
function SQLConfigDataSource;external 'odbccp32.dll' name 'SQLConfigDataSource';
function SQLGetInstalledDrivers;external 'odbccp32.dll' name 'SQLGetInstalledDrivers';
end.

// para ser llamado desde mi aplicacion (aqui ya estan los parametros que
// utilizare en la aplicacion). Como veis intento convertir la cadena en un
// PChar

SqlConfigDataSource(0, ODBC_ADD_DSN, 'Microsoft Access Driver (*.mdb)', PChar('DSN=WebsBD\0 Database='+ExtractFilePath(Application.ExeName)+'WebsBD.mdb\0 uid=\0 pwd=\0'));

Uso Delpi 2010, Acess 2007 y Windoes 7
Responder Con Cita