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.
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
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 );
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Ich würde die ganze Zeile auskommentieren.
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
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Und was ist damit: propset.AddProperty(DBPROP_UPDATABILITY, 0); [/Code]
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:
Klotzkopp Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 propset.AddProperty(DBPROP_UPDATABILITY, (DWORD)0); [/Code]
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
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.
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:
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 ????
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden