Mensaje    Asunto: MySQL CREAR,BORRAR,COMPROBAR ALIAS, Y ODBC Responder citando

PARA QUE NO SEAN PARA UNA DLL SOLO QUITAR PUBLIC
Código:

PUBLIC bool TieneMyODBC2x()
    {
    char SysDir[144];
    GetSystemDirectory(SysDir, sizeof(SysDir));
    return FileExists(AnsiString(SysDir)+"\\myodbc.dll");
    }
Código:


PUBLIC bool TieneMyODBC3x()
    {
    char SysDir[144];
    GetSystemDirectory(SysDir, sizeof(SysDir));
    return FileExists(AnsiString(SysDir)+"\\myodbc3.dll");
    }
Código:


PUBLIC 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;
    }
Código:

PUBLIC 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;
    }
Código:

PUBLIC bool BorrarAlias(AnsiString alias)
    {
    TRegistry *Registry = new TRegistry;
    Registry->RootKey = HKEY_CURRENT_USER;

    if(Registry->DeleteKey("\\Software\\ODBC\\ODBC.INI\\"+alias))
        {
        Registry->CloseKey();
        Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
        if(Registry->DeleteValue(alias))
            {Registry->CloseKey(); delete Registry; return true;}
        }
    Registry->CloseKey();
    delete Registry;
    return false;
    }

_________________
Los problemas mas dificiles tienen las soluciones mas sencillas