VS 6 - Programm für Datenbankzugriff - mehrere Tabellen ?? need help!



  • Hallo Ihr dort draußen,

    ich hoffe mir kann jemand bei meinem Problem helfen.

    Ich habe ein kleines Programm geschrieben (VS 6.0), mit dem ich über ODBC Verbindung auf eine Datenbank / Tabelle zugreife.
    Bei einer Tabelle war das auch kein Problem.

    Nur soll das Tool die Option erhalten, zwischen mehreren Tabellen aus der gleichen Datenbank zu wählen.
    Dafür (denke ich) gibt es 2 Möglichkeiten.

    Eine wäre (so stell ich mir das ungefähr vor), dass ich dem Datenbankpointer m_pSet irgendwie die neue Adresse der anderen Tabelle übergebe und dann damit arbeiten kann.
    Hierfür habe ich eine neue Funktion angelegt, die auch von CRecordSet abgeleitet ist.
    Leider schaffe ich es nicht, die Verknüpfung zum leben zu erwecken.

    Die Andere ist, dass ich direkt beim connecten zur Datenbank mehrere Tabellen anwähle.
    Funktioniert so weit auch. Nur hab ich dann ein anderes Problem
    Mein Pointer m_pSet, mit dem ich auf die Einträge zugreifen kann enthält nur eine Zahl für die Anzahl der einträge. Ich vermute es ist die der größten Tabelle. Wenn ich nun meine kleinere Tabelle auslese (abfrage auf EOF) wird diese mit ebenso vielen Einträgen dargestellt wie die Größte. (immer die gleichen)

    Ich hoffe, mir hat jemand einen Rat oder zumindest einen Link mit einer Erklärung für meine Not.
    Schon mal vielen Dank im voraus.

    Gruß
    MAIK



  • Hi,

    erstell doch für jede Tabelle eine eigene Set- Klasse.

    Dann

    CDeineSet db;
    CString sql;
    sql = "select * from balbla";
    
    	try 
    	{
    		db.Open(CRecordset::snapshot, sql);
    
    		if(db.IsEOF())
    		{
    			AfxMessageBox("Kann nichts auslesen", MB_ICONEXCLAMATION);
    			return;
    		}
    		else
    			{	
    				// Auslesen der Datensätze	
    		}
    	db.Close();				
    	}
    	catch(CDBException* e)
    	{
    		AfxMessageBox( e->m_strError, MB_ICONEXCLAMATION );
    	}
    }
    

Anmelden zum Antworten