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


Registrado: 12 Nov 2005Mensajes: 92
|
Publicado: Mie 22 Feb, 2006 12:59 pm Asunto: odbc para access |
|
|
Sobre la generacion y destruccion de ODBCs dinamicos he encontrado este codigo de César C. Salazar González, y ademas he buscado por la web sin mucha fortuna...
| Código: |
// indicar el Lugar del Archivo.net,
Session1->NetFileDir = "ruta";
TConfigMode Save_Config = Session1->ConfigMode;
Session1->ConfigMode = cmPersistent;
try{
//Limpiamos simpre por cualquier cuelgue del sistema..
// por si nuestro programa, se trabajo, la maquina se
// reseteo etc. borramos siempre el alias..
Session1->DeleteAlias("NOMBRE_DEL_ALIAS");//
Session1->AddStandardAlias("NOMBRE_DEL_ALIAS","RUTA_DE_LAS_BASES","PARADOX");
// ALIAS DINAMICO, PARA PARADOX, EXISTE TAMBIEN
// AddAlias, para Ado, ODBC, ETC..
}
__finally{
Session1->ConfigMode = Save_Config;
}
// POR ULTIMO ACTIVAMOS LA SESSION Y EL DATABASE.
Session1->Active=true;
Database1->Connected=true
|
En:
https://cppbuilder.es/viewtopic.php?t=8448
Sin embargo y pese a que está genial explicado, no se como crear un alias para Access. Debo decir que no utilizo componentes ADO al no venirme en el paquete que es c++builder 5.0, la base de datos es Access 2003. Gracias por la ayuda! |
|
| Volver arriba |
|
 |
best_guitar Lt


Registrado: 12 Nov 2005Mensajes: 92
|
Publicado: Jue 23 Feb, 2006 11:56 am Asunto: |
|
|
he encontrado estos codigos en la red pero no es codigo c++builder!
El primero es en delphi y el siguiente Win32.
| Código: |
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=MS Access'#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;
procedure TForm1.Button1Click(Sender: TObject);
begin
if AddDsn('TestDns','c:\test.mdb', 'anything') then
ShowMessage('The ODBC DNS Added successfully');
end;
|
y el siguiente de _Leo_
| Código: |
//bool ret;
//ret = CreateODBCAlias("MiAlias",
//"miBase.mdb",
//"C:\directorio\datos\",
//"Esto es una prueba";
// Devuelve true si se crea correctamente
//ShowMessage(ret ? "Creado" : "Error";
bool CreateODBCAlias(String sAlias, String sDB, String Dir, 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;
}
////////Para Borrar un alias ODBC
//LLAMADA
//bool ret = RemoveODBCAlias("Rebeca";
// devuelve true en caso de que se borre
//ShowMessage(ret ? "Borrado" : "Error";
bool RemoveODBCAlias(String sAlias)
{
typedef BOOL (__stdcall *pSQLConfigDataSource)HWND,ORD, 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;", sAlias.c_str));
bRet = SQLConfigDataSource(NULL,3 /*ODBC_REMOVE_DSN*/,
"Microsoft Access Driver (*.mdb)", szParam);
}
FreeLibrary(hLib);
}
// Devuelve true si se borra o false en caso contrario return bRet;
}
|
Como puedo introducirlos en builder sin que me de errores? o tal vez debo compilarlo con Visual C++ y luego llamar a las funciones de otra manera? Gracias. |
|
| 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.
|