Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 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. Zitieren
bigpoint Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 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 Zitieren
bigpoint Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 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 ); Zitieren
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Ich würde die ganze Zeile auskommentieren. Zitieren
bigpoint Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 Original geschrieben von Klotzkopp Ich würde die ganze Zeile auskommentieren. das hab ich auch versucht, leider ohne Erfolg Zitieren
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Und was ist damit: propset.AddProperty(DBPROP_UPDATABILITY, 0); [/Code] Zitieren
bigpoint Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 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: Zitieren
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 propset.AddProperty(DBPROP_UPDATABILITY, (DWORD)0); [/Code] Zitieren
bigpoint Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 Original geschrieben von Klotzkopp propset.AddProperty(DBPROP_UPDATABILITY, (DWORD)0); Error C2668: 'AddProperty' : Mehrdeutiger Aufruf einer ueberladenen Funktion Zitieren
Guybrush Threepwood Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Probier mal den 2ten Parameter in ein long oder bool anstatt in ein DWORD zu casten. Zitieren
bigpoint Geschrieben 5. Februar 2004 Autor Geschrieben 5. Februar 2004 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: Zitieren
bigpoint Geschrieben 5. Februar 2004 Autor Geschrieben 5. Februar 2004 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 ???? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.