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


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 20 Mar, 2014 1:24 pm Asunto: MySql y ODBC |
|
|
Estoy tratando de instalar MySql en un máquina con Windows 7 SP 1. He instalado el servirdor a partir de la versión mysql-5.5.25a-win32 y he instalado el conector mysql-connector-odbc-5.2.6-win32. Se ha ejecutado todo sin problemas de ningún tipo pero a la hora de definir en el panel de control el origen de datos no me aparece por ninguna parte el conector para MySql.
¿Qué tengo que hacer? También probé el concector mysql-connector-odbc-5.1.11-win32 _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Vie 21 Mar, 2014 3:03 pm Asunto: |
|
|
y creándolo dinamicamente? _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 21 Mar, 2014 7:44 pm Asunto: |
|
|
| likibuay escribió: | | y creándolo dinamicamente? |
¿Cómo? Vamos a ver: Si en vez de por Panel de control > ODBC > DSN de sistema entro por Panel de control > BDE > ODBC > ODBC Administrator > DSN de sistema si se crea la conexión, pero luego ¡no la veo en ninguna parte! _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Vie 21 Mar, 2014 8:09 pm Asunto: |
|
|
a mi me pasa igual... no me aparece para crear el origen de datos mysql.
pero como te dije antes... yo lo creo dinamicamente al abrir el programa.
| Código: | bool TieneMyODBC2x()
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
return FileExists(AnsiString(SysDir)+"\\myodbc.dll");
}
bool TieneMyODBC3x()
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
return FileExists(AnsiString(SysDir)+"\\myodbc3.dll");
}
bool ExisteAlias(AnsiString alias)
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
TRegistry *Registry = new TRegistry;
Registry->RootKey = HKEY_CURRENT_USER;
if (Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,false)==true)
{
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", false);
if(Registry->ReadString(alias)!="")
{Registry->CloseKey();delete Registry;return true;}
}
Registry->CloseKey();
delete Registry;
return false;
}
bool CrearAliasMySQL(AnsiString alias, AnsiString database,AnsiString server,AnsiString user,AnsiString pasv,AnsiString puerto)
{
char SysDir[144];
GetWindowsDirectory(SysDir, sizeof(SysDir));
TRegistry *Registry = new TRegistry;
Registry->RootKey = HKEY_CURRENT_USER;
if (TieneMyODBC2x()&&!TieneMyODBC3x())
{
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,true);
Registry->WriteString("Database",database);
Registry->WriteString("Description","");
Registry->WriteString("Driver",AnsiString(SysDir)+"\\myodbc.dll");
// Registry->WriteString("Option","2579");
Registry->WriteString("Password",pasv);
Registry->WriteString("Server",server);
// Registry->WriteString("User",user);
// Registry->WriteString("Stmt","");
// Registry->WriteString("Port",puerto);
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
Registry->WriteString(alias,"MySQL");
Registry->CloseKey();
delete Registry;
return true;
}
if (TieneMyODBC3x())
{
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,true);
Registry->WriteString("Database",database);
Registry->WriteString("Description"," ");
Registry->WriteString("Driver",AnsiString(SysDir)+"\\myodbc3.dll");
Registry->WriteString("PWD",pasv);
Registry->WriteString("Server",server);
Registry->WriteString("User",user);
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
Registry->WriteString(alias,"MySQL ODBC 3.51 Driver");
Registry->CloseKey();
delete Registry;
return true;
}
Registry->CloseKey();
delete Registry;
return false;
}
bool RemoveODBCAlias(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)
{
char szParam[1024];
sprintf(szParam, "DSN=%s;\0", 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;
} |
en mi caso yo elimino si existe..
//normal
RemoveODBCAlias("mi alias"); CrearAliasMySQL("mi_alias","mi:bd","ip_host","usuario","clave","puerto");
y no se te olvide las librerias.
| Código: | #include <Registry.hpp>
#include <iostream.h> |
espero sea de tu ayuda.
excelente día.
código del sr Fernando Diaz
https://cppbuilder.es/viewtopic.php?t=10018&highlight=alias+odbc _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 25 Mar, 2014 11:36 am Asunto: |
|
|
Estoy intentando probar el código que me pasaste. He de anticipar que es la primera base de datos de MySQL a la que me enfrento.
| Código: | CrearAliasMySQL(String alias, String database, String server, String user, String pasv, String puerto) |
El segundo parámetro (database) en el ejemplo que me has puesto lo has escrito como "mi:bd"; esos dos puntos me tienen despistado. ¿No sería el nombre de la base de datos a pelo?. Por ejemplo:
| Código: | CrearAliasMySQL("Alias", "Database", "localhost", "root", "clave", "3306") |
Hay, además, otro proplema. El equipo en el que estoy haciendo la aplicación tien W7. Al correr las funciones se ejecutan bien pero he detectado que donde realmente están las dll de MySql es en Archivos de programa y en la carpeta Windows sí hay dos ficheros ini: Odbc y Odbcinst. En este segundo hay una sección:
| Cita: | [MySQL ODBC 5.1 Driver (32 bit)]
Driver=C:\Program Files (x86)\MySQL\Connector ODBC 5.1\myodbc5.dll
Setup=C:\Program Files (x86)\MySQL\Connector ODBC 5.1\myodbc5S.dll
32Bit=1 | .
¿No debería ser con esa dll myodbc5.dll con la que habría que conectarse? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mie 26 Mar, 2014 4:58 pm Asunto: |
|
|
Buenas, disculpa lo de "mi:bd".
como a mi me funciona perfecto con ese código no me he puesto a revisar esa parte de conexión... dll myodbc5.dll
apenas pueda investigo al respecto...
me cuentas como te fue. excelente día. _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mar 08 Abr, 2014 10:41 pm Asunto: |
|
|
Suele pasar cuando usas el panel para 64bit, es probable que tu sistema operativo sea de 64bit, y pone por defecto ese panel.
Si esto es asi busca en la carpeta system32 el archivo odbcad32.exe y ejecuta, este es el mismo panel pero para driver de 32bit, ya que el mysql que instalaste es de 32bit, y es mejor asi, de lo contrario no te va a funcionar el cb.
saludos. _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| 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.
|