Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

MySql y ODBC

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: MySql y ODBC Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

y creándolo dinamicamente?
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Gracias. En cuanto lo pruebe os comento como va.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Ok. Probaré y ya diré como me ha ido.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.