CDBException und falscher RecordCount()-Wert



  • Hallo zusammen,

    ich bekomme bei folgendem Text eine CDBException mit der Aussage:

    Es wurde ein falsches Argument festgestellt

    Leider kann ich damit nicht so viel anfangen. Ich habe mir mal den Spaß gemacht und so ziemlich alle Aktionen in einen einzelnen Try/Catch Block gepackt, das Ergebnis sieht dann so aus:

    ...
    if(!db.IsOpen()) return 1;
    
    try
    {
    	tab.Open(CRecordset::dynaset, select);
    }
    catch(CDBException *e)
    {
    
    	e->ReportError();
    	e->Delete();
        err_message.Format("Satz suchen (OpenTab)");
    	AfxMessageBox(err_message);
    	AfxMessageBox(select);   //Statement wurde zusammengestellt "SELECT * FROM Daten ORDER BY number ASC"
    	return 1;
    }
    
    if(!tab.IsOpen()) return 1;
    
    //Test ob Recordset leer also Datenbank sozusagen leer
    if(tab.IsBOF())
    {
    	AfxMessageBox("Die Suchekriterien ergaben keine Treffer oder die Datenbank ist leer!");
    	return 1;
    }
    
    try
    {
    	while(!tab.IsEOF())
    	{
    		Liste[i] = tab.number;
    		i++;
    		tab.MoveNext();
    	}
    }
    catch(CDBException *e) // diese Exception wird "gefangen"
    {
    	e->ReportError();
    	e->Delete();
    	err_message.Format("%i - Satz suchen (Liste füllen)", i); // Wert für i ist hier 230, was auch korrekt ist
    	AfxMessageBox(err_message);
    	AfxMessageBox(select); //siehe oben
    	return 1;
    }
    
    list_count = tab.GetRecordCount();
    err_message.Format("%i", list_count); // hier sagt Die Ausgabe 2550128
    AfxMessageBox(err_message);
    ...
    

    Die Aussaage von "e->ReportError();" sagt ja fast nichts aus. Hat jemand eine Idee, woran das liegen kann?

    Zusatzinfo:

    MS VS2012
    MS SQLServer 2008 R2
    System: Win7

    Viele Grüße und vielen Dank,
    Ranger


Anmelden zum Antworten