Probleme mit CRecordset/CDatabase und SQL Server 2005



  • Ich habe folgendes Problem. Ich möchte mit CRecordset/CDatabase Zugriff auf einen SQL-Server haben (2005 Express Edition). Beim rs.Open() bekomme ich eine "Unhandled exception...".

    Ich habe keine ODBC-DSN angelegt, sondern übergebe alle Parameter im Connectionstring. Kann da der Fehler liegen.

    Holger

    CDatabase oDB;
    
    	try
    	{
    
    		if ( oDB.Open(NULL, FALSE, FALSE, _T("ODBC;Driver={SQL Server};SERVER=192.168.1.138\\alarmstatistic;DATABASE=AlarmStatistic;Port=1433;UID=sa;PWD=***")) != 0)
    		{
    			if (oDB.IsOpen() )
    			{
    				CRecordset rs(&oDB);
    
    				rs.Open( CRecordset::snapshot , _T( "Select * from DBVersion" ) );
    				if (! rs.IsEOF()) 
    				{ 
    					CDBVariant dbValue;
    					rs.GetFieldValue("DB_Version", dbValue);
    				} 
    			}                      
    
    		}
    	}
    	catch (CDBException ex)
    	{
    		CString strError = ex.m_strError;
    	}
    


  • big-holger schrieb:

    ... übergebe alle Parameter im Connectionstring. Kann da der Fehler liegen...

    Das lässt sich doch relativ leicht rausfinden, indem du die Datenquelle anlegst 😉



  • Auch wenn ich eine Datenquelle (DSN) angebe und den Connectstring leer lasse, schlägt das Recordset.Open() fehl.

    Daran liegt es also nicht.



  • Versuch mal:

    CDatabase Bla;
    Bla.OpenEx("DSN=XXX;UID=XXX;PWD=XXX", CDatabase::useCursorLib);
    if(Bla.IsOpen())
    
    [...]
    

    Müsste eigentlich funktionieren.

    Liebe Grüße,
    Julian


Log in to reply