Zum Inhalt springen

Ole Db


bigpoint

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ????

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...