ODBC-Alias anlegen lassen?



  • Hallo, ich hab mich mal gefragt, ob es möglich ist - und ich denke schon, dass es gut möglich ist - dass man vom Programm aus ein ODBC-Alias anlegen lassen kann? - Wie geht das?

    Ziel ist es, dass man die Datenbank auswählt (MS-Access-DB) und darauf zugreift, dazu ist ja ein ODBC-Alias notwendig. Außerdem soll gleich Benutzername udn PAsswort eingestellt werden können.

    - Windoof



  • Ich hatte schonmal genau das gleiche problem, und kann dir hiermit sagen du kommst in die WinAPI =!)

    Ich mach das mit InstallShield...!

    Aber schau mal im Forum WinAPI!





  • Wenn mir das jemand in C++ umsetzen könnte... ich schaff es nicht... ich schafe es nicht diese DLL einzubinden, kenne die Syntax dafür nicht...

    Thx. - Windoof



  • also ich kenn da die WINAPI Funktion:

    // myrecordset.cpp: Implementierungsdatei
    //
    
    #include "stdafx.h"
    #include "xxx.h"
    #include "myrecordset.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // myrecordset
    
    IMPLEMENT_DYNAMIC(myrecordset, CRecordset)
    
    myrecordset::myrecordset(CDatabase* pdb)
        : CRecordset(pdb)
    {
        //{{AFX_FIELD_INIT(myrecordset)
        m_ID = 0;
        m_Name = _T("");
        m_nFields = 2;
        //}}AFX_FIELD_INIT
        m_nDefaultType = snapshot;
    }
    
    CString myrecordset::GetDefaultConnect()
    {
            // Neuer Connectionstring
        return _T("ODBC;Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db1.mdb;");
    }
    
    CString myrecordset::GetDefaultSQL()
    {
        return _T("[name]");
    }
    
    void myrecordset::DoFieldExchange(CFieldExchange* pFX)
    {
        //{{AFX_FIELD_MAP(myrecordset)
        pFX->SetFieldType(CFieldExchange::outputColumn);
        RFX_Long(pFX, _T("[ID]"), m_ID);
        RFX_Text(pFX, _T("[Name]"), m_Name);
        //}}AFX_FIELD_MAP
    }
    
    /////////////////////////////////////////////////////////////////////////////
    // Diagnose myrecordset
    
    #ifdef _DEBUG
    void myrecordset::AssertValid() const
    {
        CRecordset::AssertValid();
    }
    
    void myrecordset::Dump(CDumpContext& dc) const
    {
        CRecordset::Dump(dc);
    }
    #endif //_DEBUG
    

    vielleicht kannst ja damit was anfangen!



  • #include <odbcinst.h>



  • Hmmm... und die Klasse dazu...? - Leitet sie von irgendwoher etwas ab oder so...? Zeig mal den Code von der Klasse.


Anmelden zum Antworten