2. Februar 200421 j Das ist DB_E_ERRORSOCCURRED. Ruf mal AtlTraceErrorRecords mit dem HRESULT auf, während das Programm im Debugger läuft. Das sollte eine Beschreibung des Fehlers ins Output-Fenster schreiben.
2. Februar 200421 j Autor Fehler: ATL: OLE DB Error Record dump for hr = 0x80040e21 ATL: Row #: 0 Source: "Microsoft OLE DB Provider for SQL Server" Description: "Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet ." Help File: "(null)" Help Context: 0 GUID: {0C733A63-2A1C-11CE-ADE5-00AA0044773D} ATL: OLE DB Error Record dump end
2. Februar 200421 j Autor ich glaube es liegt in der Spalte denn hier sage ich den SQL Server das ich die daten verändern will, was muss ich hier schreiben wenn ich nur ein select ausführen will propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE );
2. Februar 200421 j Autor Original geschrieben von Klotzkopp Ich würde die ganze Zeile auskommentieren. das hab ich auch versucht, leider ohne Erfolg
2. Februar 200421 j Autor Original geschrieben von Klotzkopp Und was ist damit: propset.AddProperty(DBPROP_UPDATABILITY, 0); error C2668: 'AddProperty' : Mehrdeutiger Aufruf einer ueberladenen Funktion ich glaube ich werde verückt :confused:
2. Februar 200421 j Autor Original geschrieben von Klotzkopp propset.AddProperty(DBPROP_UPDATABILITY, (DWORD)0); Error C2668: 'AddProperty' : Mehrdeutiger Aufruf einer ueberladenen Funktion
2. Februar 200421 j Probier mal den 2ten Parameter in ein long oder bool anstatt in ein DWORD zu casten.
5. Februar 200421 j Autor Original geschrieben von Guybrush Threepwood Probier mal den 2ten Parameter in ein long oder bool anstatt in ein DWORD zu casten. Der Compeiler schluckt es, aber in hr steht -2147217887:confused:
5. Februar 200421 j Autor Original geschrieben von Klotzkopp Ich kann mir das nur so erklären, dass dieser Code in einer Memberfunktion einer Klasse steht, die von CCommand abgeleitet ist. Ist das der Fall? Ok jetzt ganz langsam, ich habe eine *.h und *.cpp in *.h steht : class CTabell { public: CTabell() { memset( (void*)this, 0, sizeof(*this) ); }; // Die variablen von CTabell BEGIN_COLUMN_MAP(CTabell) //Die Spalten von CTabell END_COLUMN_MAP() }; class testSet : public CCommand<CAccessor<CTabell> > { public: // Setzen der Parameter für den Zugriff auf die richtige DB. void SetDBParams(const CString& server, const CString& catalog, const CString& user, const CString& passwd); // DataSource und Session öffnen HRESULT OpenDataSource(); private: CString mServer; CString mCatalog; CString mUser; CString mPasswd; }; [/PHP] in *.cpp steht die SetDBParams und OpenDataSource : [PHP] HRESULT OpenDB::OpenDataSource() { CDataSource db; HRESULT hr = S_OK; CDBPropSet dbinit(DBPROPSET_DBINIT); // Windows Authenzifirung oder SQL Server if(!mUser.IsEmpty()) { dbinit.AddProperty(DBPROP_AUTH_USERID, mUser); dbinit.AddProperty(DBPROP_AUTH_PASSWORD, mPasswd); } else { // Windows-User dbinit.AddProperty(DBPROP_AUTH_INTEGRATED, OLESTR("SSPI")); } dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false); dbinit.AddProperty(DBPROP_INIT_CATALOG, mCatalog); dbinit.AddProperty(DBPROP_INIT_DATASOURCE, mServer); dbinit.AddProperty(DBPROP_INIT_LCID, (long)1031); dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4); hr = db.OpenWithServiceComponents(_T("SQLOLEDB.1"), &dbinit); if (FAILED(hr)) return hr; CSession session; session.Open(db); if (FAILED(hr)) return hr; CDBPropSet propset(DBPROPSET_ROWSET); propset.AddProperty(DBPROP_MULTIPLECONNECTIONS, true); propset.AddProperty(DBPROP_IRowsetScroll, true); propset.AddProperty(DBPROP_IRowsetChange, true); propset.AddProperty(DBPROP_UPDATABILITY, (long)0 ); if(FAILED(hr = CCommand<CAccessor<CTabell> >::Open(session, "SELECT * FROM dbo.Tabell ", &propset))) { AtlTraceErrorRecords(hr); return hr; } return MoveNext(); } so rufe ich es: OpenDB opendb; opendb.SetDBParams(....); opendb.OpenDataSource(); while(S_OK == opendb.cmd.MoveNext()) { int k = opendb.m_ver; } [/PHP] gibt es eine andere Möglichkeit, ist es überhaupt korrekt was ich mache ????
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.