//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool CreateODBCAlias(String sAlias, String sDB, String sDir, String sDescription)
{
typedef BOOL (__stdcall *pSQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
pSQLConfigDataSource SQLConfigDataSource;
HINSTANCE hLib;
bool bRet = false;
hLib = LoadLibrary("odbccp32.dll");
if (hLib)
{
SQLConfigDataSource = (pSQLConfigDataSource) GetProcAddress(hLib, "SQLConfigDataSource");
if (SQLConfigDataSource)
{
char szParam[1024];
sprintf(szParam, "DSN=%s; Description=%s; DefaultDir=%s; DBQ=%s ",
sAlias.c_str(), sDescription.c_str(), sDir.c_str(), sDB.c_str());
bRet = SQLConfigDataSource(NULL, 1 /*ODBC_ADD_DSN*/,"Microsoft Access Driver (*.mdb)", szParam);
} FreeLibrary(hLib);
}
// Devuelve true si se crea o false en caso contrario
return bRet;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
bool ret;
ret = CreateODBCAlias("MiAlias",
"bd.mdb",
"C:bd",
"Esto es una prueba");
// Devuelve true si se crea correctamente
ShowMessage(ret ? "Creado" : "Error");
}
//---------------------------------------------------------------------------