Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » es funktioniert nur forwardOnly in CRecordset

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
28.08.2005, 20:23 Uhr
~Feuer
Gast


Hallo!
Mein Problem ist das wenn ich bei CRecordset::Open einen anderen Wert auser forwardOnly nehme z.B. dynaset oder snapshot stürzt mein Programm ab! Wodran kann das liegen. Selbst wenn ich bei CRecordsset::Open gar keine Wert angeben stürzt das Programm ab!
Wäre schön wenn mir jemand helfen kann!

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.08.2005, 09:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was für eine db öffnest du denn
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.08.2005, 13:47 Uhr
~Feuer
Gast


MySQL über ODBC
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.08.2005, 17:25 Uhr
~Feuer
Gast


Hat niemand eine idee???
Wäre echt ne hilfe!!!

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.08.2005, 18:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


evtl die db im falschen modus geöffnet?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.08.2005, 20:18 Uhr
~Feuer
Gast


nicht das ich wüsste


C++:
CDatabase db;
    

db.Open(_T( "mysql" ) , FALSE, FALSE, _T("ODBC;") , FALSE );


CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly ,
         _T( "SELECT inhalt FROM cms_content" ) );

CString varValue;

short nFields = rs.GetODBCFieldCount( );
while( !rs.IsEOF( ) )
{
      rs.GetFieldValue( "inhalt", varValue );
      
      MessageBox(0,varValue,"",MB_OK);
   rs.MoveNext( );
}


rs.Close();
db.Close();

return 0;
}



so funktioniert alles wunderbar
wenn ich das jetzt so mache


C++:
CDatabase db;
    

db.Open(_T( "mysql" ) , FALSE, FALSE, _T("ODBC;") , FALSE );


CRecordset rs( &db );
rs.Open( );
rs.Close();
db.Close();
}


Würde ich sofort beim Öffnen des Programms eine Fehlermeldung erhalten die da wäre:


Dieser Post wurde am 31.08.2005 um 22:13 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
31.08.2005, 22:13 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schau mim debugger wo genau er hängen bleibt (bei welchem assert)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.09.2005, 17:06 Uhr
~Feuer
Gast



C++:
// "SELECT <user column name list> FROM <table name>"
void CRecordset::BuildSelectSQL()
{
    ASSERT_VALID(this);
    ASSERT(m_hstmt != SQL_NULL_HSTMT);

    // Ignore queries with procedure call keyword or output param
    if (!(_tcsnicmp(m_strSQL, _afxCall, lstrlen(_afxCall)-1) == 0 ||
        _tcsnicmp(m_strSQL, _afxParamCall, lstrlen(_afxParamCall)-1) == 0))
    {
        // Ignore queries already built
        if (_tcsnicmp(m_strSQL, _afxSelect, lstrlen(_afxSelect)-1) != 0)
        {
            // Assume m_strSQL specifies table name
            [B]ASSERT(m_nFields != 0);[/B]

            CString strTableName;
            strTableName = m_strSQL;
            m_strSQL.Empty();
            m_strSQL = _afxSelect;

            // Set all fields dirty. AppendNames only outputs dirty field names
            SetFieldDirty(NULL);
            if (AppendNames(&m_strSQL, _T(",")) == 0)
            {
                TRACE0("Error: no field names - at least 1 required.\n");
                ThrowDBException(AFX_SQL_ERROR_EMPTY_COLUMN_LIST);
            }

            // Overwrite final ',' separator with ' '
            ASSERT(m_strSQL[m_strSQL.GetLength()-1] == ',');
            m_strSQL.SetAt(m_strSQL.GetLength()-1, ' ');

            m_strSQL += _afxFrom;
            m_strSQL += strTableName;
        }
    }
}



ASSERT(m_nFields != 0); <- da bleibt er stehen!

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.09.2005, 17:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dann stimmt halt dein Default-SQL-String nicht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.09.2005, 19:45 Uhr
~Feuer
Gast


grml was kann man dagegen machen?
der default string ist NULL
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: