Daten per ODBC aus Datenbank holen



  • Hallo,
    wie schon oben beschrieben, suche ich eine Möglichkeit Daten per ODBC aus einer Datenbank zu bekommen. Kann mir da jemand bei helfen.

    Gruß Silver



  • Du könntest zB die beim Platform SDK von Windows enthaltene ODBC-Library dafür benützen?!

    MfG SideWinder



  • und wie kann ich die benutzen



  • Du hast die Doku in der MSDN bereits gelesen...? Im Prinzip immer der Selbe Ablauf:

    1. Environment-Handle
    2. Connection-Handle
    3. Statement-Handle
    4. Statement vorbereiten (Spalten binden, etc.)
    5. Statement ausführen
    6. ResultSet aus dem Statement abarbeietn
    7. Alles wieder abbauen oder ab 3. weitermachen

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • FAQ schreibt:

    WinAPI
    Fragen die die reine WinAPI betreffen - also weder MFC, VCL oder über sonstige Klassenbibliotheken! Sollte das Programm die windows.h nicht einbinden, dann ist die Frage dort sicherlich falsch.

    Also entweder verstehe ich diesen Text falsch oder der Thread wurde falsch verschoben. Ich arbeite nicht mit windows.h



  • Die ODBC hat sicherlich nichts mit dem C++-Standard zu tun, wenn du unter Windows programmierst fällt das nunmal unter WinAPI weil du die WinAPI-Implementierung der ODBC verwenden wirst 🙂

    MfG SideWinder



  • Jetzt mal wieder zurück zum Thema also ich habe mir da jetzt was zusammengebastelt um auf die Datenbank zuzugreifen:

    [cpp]std::string DatabaseConnection::GetUserLevel(std::string UserName, std::string Password)
    {
    	CDatabase UserData;
    	CString DB_File = "Fuhrpark";
    	CString sDsn;
    	CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
    	CString SqlString;
    
    	// The ODBC Connection String
    
    //	sDsn.Format("ODBC;DRIVER={%s};DSN='Fuhrpark';DBQ=%s",sDriver,DB_File);
    
    	TRY
    	{
    		// Open the database
    		UserData.Open( "Fuhrpark" );
    
    		// Allocate the recordset
    		CRecordset recset( &UserData );
    
    		SqlString = "SELECT ID, Benutzername,Passwort, Rechte FROM tbl_Benutzerliste WHERE Benutzername = '";
    		SqlString += UserName.c_str();
    		SqlString += "'";
    
    		// Execute the query
    		recset.Open(AFX_DB_USE_DEFAULT_TYPE,SqlString,CRecordset::none   );
    
    		CString Benutzername;
    		CString Passwort;
    		CString Rechte;
    		CString Personalnummer;
    
    		recset.GetFieldValue("Benutzername",Benutzername);
    		recset.GetFieldValue("Passwort",Passwort);
    		recset.GetFieldValue("Rechte",Rechte);
    		recset.GetFieldValue("Personalnummer",Personalnummer);
    
    	/*	parameters.Driver			= Benutzername;
    		parameters.Password			= Passwort;
    		parameters.Rights			= Rechte;
    		parameters.PersonalNumber	= Personalnummer;*/
    
    		// go to next record
    		recset.MoveNext();
    
    		// Close the database
    		UserData.Close();
    
    	}
    	CATCH(CDBException, e)
    	{
    			// If a database exception occured, show error msg
    			AfxMessageBox("Database error: "+e->m_strError);
    	}
    
    	END_CATCH;
    
    	return SqlString;
    
    }[/cpp]
    

    nur wenn ich den Code ausführe wird mir gesagt :
    Database error: Datensätze können nicht gelesen werden. Keine Leseberechtigung auf tbl_Benutzerliste

    Woher bekomme ich nun diese Leseberechtigung in meiner Access Datenbank habe ich nichts der gleichen gefunden.



  • Kann mir da keiner helfen??


Anmelden zum Antworten