Datenbankeinbindung in VS C++ mit OleDB



  • Ich habe ein Problem beim Einbinden.

    Mein Code sieht so aus:

    HRESULT hr;
    CDBPropSet dbinit(DBPROPSET_DBINIT);
    dbinit.AddProperty(DBPROP_AUTH_USERID,"Admin");
    dbinit.AddProperty(DBPROP_AUTH_PASSWORD,OLESTR("0"));
    dbinit.AddProperty(DBPROP_INIT_DATASOURCE,OLESTR("http://\\\Uls430\\student\\Kaiser\...my_database.mdb"));
    CDataSource a;
    CSession Session;
    CCommand <CNoAccessor,CNoRowset> Command;
    hr = a.Open(_T("Microsoft.Jet.OLEDB.4.0"),&dbinit);

    if (FAILED(hr))
    {
    ➡ cout<<"ERROR!"<<endl;
    return hr;
    }
    cout<<"Bin geoeffnet!"<<endl;
    Session.Open(a);
    }

    An der mit einem Pfeil markierten Stelle, steigt das Programm jedoch aus.
    Warum?? Wo ist der Fehler?
    Danke!

    Gruß

    Pferdele 🙄



  • zumindestens weist du das deine datenbank nicht geöffnet wird.

    beispiel von mir

    ATLASSERT(m_cDS.m_spInit == NULL && sFile);
    	HRESULT hr;
    	CComBSTR x("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=");
    	if (*sFile == '.' || *sFile == '\\')
    	{
    		if (*(sFile+1) != ':') x +=m_cPath;
    	}
    	else
    	{
    		ATLASSERT(m_pIni);
    		char sPath[MAX_PATH+1];
    		::GetPrivateProfileStringA(INI_APP_ADJUSTMENT, DB_PATH, "", sPath, MAX_PATH, m_pIni);
    		x +=sPath; x +="\\"; 
    	}
    	x +=sFile;
    	hr=m_cDS.OpenFromInitializationString(x);
    	if(FAILED(hr)) 
    	{
    		Close();
    		ATLTRACE("CDataSource::OpenFromInitializationString failed: hr = %x\n", hr);
    		throw CDatabaseException(hr);
    	}
    
    CDataSource				m_cDS;
    


  • So schlau bin ich auch, die Frage ist nur warum verwehrt er mir den Zugang
    zur Datenbank. 😡



  • 👎

    lesen, lernen und es gibt doch auch noch andere beispiele z.b http://www.codeproject.com/wtl/oledb.asp


Anmelden zum Antworten