DAO, MFC und ein CTreeView
-
Hallo,
ich hab mal eine Frage: Ich habe hier eine Accessdatenbank und ich wollte die Daten der DB in einem TreeView darstellen. jedoch sind die Membervariablen immer ""
lpoDoc->m_lpoRecordKeys->Open(dbOpenDynaset, "select * from Aktenschlüssel", dbInconsistent); lpoDoc->m_lpoRecordKeys->MoveFirst(); while(!lpoDoc->m_lpoRecordKeys->IsEOF()) { strTempAbNum = lpoDoc->m_lpoRecordKeys->m_Ablagenummer; strTempText = lpoDoc->m_lpoRecordKeys->m_Beschreibung; oTreeCtrl.InsertItem(LPCTSTR(strTempAbNum + ' ' + strTempText)); lpoDoc->m_lpoRecordKeys->MoveNext(); }
Die Anzahl der Datensätze hab ich mal nachrechnen lassen und die stimmt auch!
Kann mir jemand einen Tipp geben? Danke schonmal...
-
Hi hi,
dafür gibs nen einfachen Grund. Der Datentyp für Text oder Zeichen ist in der Datenbank ein anderer als der Datentyp in C++. Deswegen bekommst du als Feldeintrag nur Schmarn zurück. Hier habe ich die was kleines geschrieben womit du Text aus einer Access Datenbank holen kannst. Sollte funktioneren, bei mir hat es :).(*.cpp)
CString DeinDialog::GetFieldPStr(CDaoRecordset *rs, LPCTSTR lpszName, CString &str)
{
COleVariant var = rs->GetFieldValue(lpszName);
if (var.vt == VT_NULL)
{
str.Empty();
return str;
}
ASSERT(var.vt == VT_BSTR);
str = (var.vt == VT_BSTR) ? (LPCTSTR)var.bstrVal : "";
return str;
}(*.h)
CString GetFieldPStr(CDaoRecordset *rs, LPCTSTR lpszName, CString &str);(Aufruf in der *.cpp)
GetFieldPStr(&rsDeinRecordset, _T("ValueDeinSpaltenname"), strDeinString)Ich hoffe mal ich konnte dir helfen.
mfg
Hellsgore
-
Hallo,
DANKE!!!! Es funktioniert! Ich könnt dich knuddeln!
-
Kein Ding helfe gern.
viel spass damit
Hellsgore
-
Argh...er...er...macht mich fertig...
Ich hab schon vieles probiert, aber ich schaffe es einfach nicht in diese Datenbank hineinzuschreiben! Er sagt immer das dieses und jenes Feld nicht NULL sein darf und dabei zeigt mir der Debugger das überall was drin steht!
Wie kann ich nur einen CString in diese Datenbank eintragen?