 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Mie 03 Oct, 2007 2:46 pm Asunto: Herramientas administrativas de XP |
|
|
HOLA!!!
Bueno, uno como programador debe crear programas que se instalen facilmente y no que uno tenga que ir donde el cliente a instalarselo cada vez que formatee o lo que sea.
Por eso estoy aqui, porque todos los programas que hago siempre me toca ir a donde mi cliente a hacerle una maraña para ponerlos a correr.
Una de esas marañas es que siempre que trabajo con BD's tengo que ir Pabel de control->Herramientas administratvas->Origenes de datos(ODBC), y hacer que el sistema reconozca la BD de mi programa, el cual a veces se hace tedioso ir a hacer a donde un cliente.
La pregunta es la siguiente: ¿Alguien sabe alguna forma de hacer eso, medienta el codigo, o creando un instalador o como sea?
GRACIAS!!! _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Jue 11 Oct, 2007 4:03 am Asunto: |
|
|
GRACIAS!!!...
Paro las BD's que me interesan son DBase y Access, pero el dia que utilize MySQL chequeare este codigo.
Pero si hay documentacion acerca de las que mencione anteriormente, les agradezco compartir porfavor.
GRACIASS!!!! _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 11 Oct, 2007 7:30 am Asunto: |
|
|
Para dejarlo un poco mas claro:
| Código: | //---------------------------------------------------------------------------
// * CREAR UN ALIAS DE ACCESS
//---------------------------------------------------------------------------
bool CreateODBCAliasAccess(String alias, String db, String dir, String desc)
{
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)
{
String params;
params.sprintf("DSN=%s; Description=%s; DefaultDir=%s; DBQ=%s\0",
alias.c_str(), desc.c_str(), dir.c_str(), db.c_str());
bRet = SQLConfigDataSource(NULL, 4 /*ODBC_ADD_SYS_DSN*/,
"Microsoft Access Driver (*.mdb)", params.c_str());
}
FreeLibrary(hLib);
} // Devuelve true si se crea o false en caso contrario
return bRet;
}
//---------------------------------------------------------------------------
// * CREAR UN ALIAS DE DBASE
//---------------------------------------------------------------------------
bool CreateODBCAliasDBase(String alias, String dir, String desc)
{
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)
{
String params;
params.sprintf("DSN=%s; Description=%s; DefaultDir=%s; "
"FIL=dBase 5.0\0", alias.c_str(), desc.c_str(), dir.c_str());
bRet = SQLConfigDataSource(NULL, 4 /*ODBC_ADD_SYS_DSN*/,
"Microsoft dBase driver (*.dbf)", params.c_str());
}
FreeLibrary(hLib);
} // Devuelve true si se crea o false en caso contrario
return bRet;
}
//---------------------------------------------------------------------------
// * BORRAR UN ALIAS DE ACCESS
//---------------------------------------------------------------------------
bool RemoveODBCAliasAccess(String sAlias)
{
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)
{
String params;
params.sprintf("DSN=%s;\0", sAlias.c_str());
bRet = SQLConfigDataSource(NULL, 6 /*ODBC_REMOVE_SYS_DSN*/,
"Microsoft Access Driver (*.mdb)", params.c_str());
}
FreeLibrary(hLib);
} // Devuelve true si se borra o false en caso contrario
return bRet;
}
//---------------------------------------------------------------------------
// * BORRAR UN ALIAS DE DBASE
//---------------------------------------------------------------------------
bool RemoveODBCAliasDBase(String sAlias)
{
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)
{
String params;
params.sprintf("DSN=%s;\0", sAlias.c_str());
bRet = SQLConfigDataSource(NULL, 6 /*ODBC_REMOVE_SYS_DSN*/,
"Microsoft dBase Driver (*.dbf)", params.c_str());
}
FreeLibrary(hLib);
} // Devuelve true si se borra o false en caso contrario
return bRet;
} |
y un ejemplo de uso:
| Código: | // Creamos un alias de Access
bool ret1 = CreateODBCAliasAccess("MiAliasAccess", "bcdemos.mdb",
"C:\\borland\\Borland Shared\\Data", "Esto es una prueba");
ShowMessage(ret1 ? "Creado" : "Error");
// Creamos un alias de dBase
bool ret2 = CreateODBCAliasDBase("MiAliasDBase",
"C:\\borland\\Borland Shared\\Data", "Descripcion opcional");
ShowMessage(ret2 ? "Creado" : "Error"); |
| Código: | // Borramos un alias de Access
bool ret1 = RemoveODBCAliasAccess("MiAliasAccess");
ShowMessage(ret1 ? "Borrado" : "Error");
// Borramos un alias de dBase
bool ret2 = RemoveODBCAliasDBase("MiAliasDBase");
ShowMessage(ret2 ? "Borrado" : "Error"); |
|
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Dom 14 Oct, 2007 12:06 am Asunto: |
|
|
GRACIAS!!... dejame intertar para ver si sirve y luego les aviso....
de nuevo GRACIAS!!!! _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|