Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Datenbank und Dialog

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
12.03.2003, 16:07 Uhr
~andreasK
Gast


Hallo zusammen!

1.
So habe da einen Dialog abgeleitet von CDialog und eine Klasse in der ich meine Datenbankanbindung untergebracht habe, jetzt will ich in dem Dialog auf die Klasse mit der Datenbank zugreifen kann mir jemand sagen wie das funktioniert?

2.
Habe ein FormView mit Tabs und in denen befinden sich Dialoge, wie kann ich von den Dialogen auf eine Datenbank zugreifen, die aus mehreren Tabellen besteht und kann ich die Datenbank auch mit einer Klasse wie oben verbinden und in der Klasse von dem FormView unterbringen hab so was schon will nur wissen ob dann die Dialoge auch über das Form in die Datenbank zugreifen können?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.03.2003, 21:37 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Andreas,
von was hast Du Deine Db Klasse abgeleitet? (CRecordSet, CDaoDatabase...)
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.03.2003, 23:12 Uhr
~andreasK
Gast


Habe die Klasse von CRecodset bageleitet, habe darin aber nur eine Tabelle eingefügt, weis auch nicht wie ich mehrere einfügen kann oder ob ich für jede ein Klasse erstellen muss.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.03.2003, 19:38 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Andreas,
nicht ganz einfach, aber fogendermaßen sollte es gehen.
Klasse von CRecordset ableiten (CAdressenSet). Dabei Deine Db auswählen.

Im stdafx.h <afxdb.h< includieren. Resourcendatei bearbeiten und bei
3 TEXTINCLUDE DISCARDABLE "l.deu\\afxdb.rc" includieren. Soll dann so aussehen.

C++:
3 TEXTINCLUDE DISCARDABLE
BEGIN
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
    "#define _AFX_NO_OLE_RESOURCES\r\n"
    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
    "\r\n"
    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r\n"
    "#ifdef _WIN32\r\n"
    "LANGUAGE 7, 1\r\n"
    "#pragma code_page(1252)\r\n"
    "#endif //_WIN32\r\n"
    "
#include ""res\\DbProject.rc2""  // Nicht mit Microsoft Visual C++ bearbeitete Ressourcen\r\n"
    "#include ""l.deu\\afxres.rc""          // Standardkomponenten\r\n"
    "
#include ""l.deu\\afxdb.rc""           // Datenbankressourcen\r\n"
    "#endif\r\n"
    "\0"
END


Klassenassi öffnen und den Reiter "Klassen-Info" wählen. Unter Fremdklassen Deine DbKlasse angeben (bei mir CAdressenSet) und unter Fremdvariable z.B. pSet eintragen. Wenn Du jetzt in deinen Dialog Header schaust, wurde dort unter den Dialogfelddaten ein Zeiger auf Deine Klasse angelegt

C++:
// Dialogfelddaten
    //{{AFX_DATA(CDbProjectDlg)
    enum { IDD = IDD_DBPROJECT_DIALOG };
    CAdressenSet*    pSet;
    //}}AFX_DATA
...........
...........


Jetzt noch den Header Deiner Recordsetklasse einbinden, wenn Du jetzt Deine Steuerelemente mit Variablen belegst kannst Du unter "Name der Member..." auf Deine Datenbankvariablen zugreifen.
Wenn deine Db aus mehreren Tabellen besteht wird Dir sowiso vorgeschlagen diese zu übernehmen. Hast Du mehrere Db's brauchst Du für jede eine Klasse (höchstens man mogelt)
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.03.2003, 08:47 Uhr
~andreasK
Gast


DAnke aber wie füge ich denn mit dem Assi unter .net die Variable ein?
Ich benutze die Englsiche Version von dem Programm.

Klassenassi öffnen und den Reiter "Klassen-Info" wählen. Unter Fremdklassen Deine DbKlasse angeben (bei mir CAdressenSet) und unter Fremdvariable z.B. pSet eintragen. Wenn Du jetzt in deinen Dialog Header schaust, wurde dort unter den Dialogfelddaten ein Zeiger auf Deine Klasse angelegt????
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.03.2003, 11:04 Uhr
~andreasK
Gast


Muss meine Klasse in der ich die Datenbank bereitstelle so aussehen, wenn diese mehrere Tabellen benutzt, weil so wie sie jetzt aussieht benutze ich nur eine Tabelle oder?


C++:
// DataConAdress.cpp : implementation file
//

#include "stdafx.h"
#include "RechBuch.h"
#include "DataConAdress.h"


// CDataConAdress

IMPLEMENT_DYNAMIC(CDataConAdress, CRecordset)
CDataConAdress::CDataConAdress(CDatabase* pdb) : CRecordset(pdb)
{
    m_dbNummer = 0;
    m_dbAnrede = _T("");
    m_dbName1 = _T("");
    m_dbName2 = _T("");
    m_dbStrasse = _T("");
    m_dbPlz = _T("");
    m_dbOrt = _T("");
    m_dbTel = _T("");
    m_dbFax = _T("");
    m_dbEMail = _T("");
    m_dbHomepage = _T("");
}
// CDataConAdress message handlers


CString CDataConAdress::GetDefaultConnect()
{
    return _T("DBQ=RechBuchDB.mdb;DefaultDir=.;Driver={Driver do Microsoft
Access (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN=database.dsn;MaxBufferSize=2048;MaxScanRows=8;
PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;
UserCommitSync=Yes;"
);
}

CString CDataConAdress::GetDefaultSQL()
{
    return _T("[Adressen]");
}

void CDataConAdress::DoFieldExchange(CFieldExchange* pFX)
{
    pFX->SetFieldType(CFieldExchange::outputColumn);
    RFX_Long(pFX, _T("[Nummer]"), m_dbNummer);
    RFX_Text(pFX, _T("[Anrede]"), m_dbAnrede);
    RFX_Text(pFX, _T("[Name1]"), m_dbName1);
    RFX_Text(pFX, _T("[Name2]"), m_dbName2);
    RFX_Text(pFX, _T("[Strasse]"), m_dbStrasse);
    RFX_Text(pFX, _T("[PLZ]"), m_dbPlz);
    RFX_Text(pFX, _T("[Ort]"), m_dbOrt);
    RFX_Text(pFX, _T("[Telefon]"),m_dbTel);
    RFX_Text(pFX, _T("[Fax]"), m_dbFax);
    RFX_Text(pFX, _T("[E-Mail]"), m_dbEMail);
    RFX_Text(pFX, _T("[Homapage]"), m_dbHomepage);
}

#ifdef _DEBUG
void CDataConAdress::AssertValid() const
{
    CRecordset::AssertValid();

}

void CDataConAdress::Dump(CDumpContext& dc) const
{
    CRecordset::Dump(dc);
}
#endif



edit by FloSoft: CodeTags eingefügt

Dieser Post wurde am 15.03.2003 um 11:07 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.03.2003, 13:12 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Andreas,

Zitat:
~andreasK postete
DAnke aber wie füge ich denn mit dem Assi unter .net die Variable ein?
Ich benutze die Englsiche Version von dem Programm.


Da bin ich im Moment überfragt, da ich nicht zuhause an meinem Rechner sitze. Ehe ich jetzt was falsches poste, schau ich morgen lieber mal unter VC++.Net nach, zudem hab ich's unter .Net noch nicht fabriziert.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.03.2003, 13:29 Uhr
~andreasK
Gast


Na den assi den gibs da nicht kann man ja nur Variablen und Funktionen hinzufügen! Und wie binde ich mehrer Tabellen jetzt ein so wie oben da benutz ich ja nur eine Tabelle?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.03.2003, 13:30 Uhr
~andreasK
Gast


Na den assi den gibs da nicht kann man ja nur Variablen und Funktionen hinzufügen! Und wie binde ich mehrer Tabellen jetzt ein so wie oben da benutz ich ja nur eine Tabelle?


PS Wieso kann ich mich nicht mehr einloggen geht zwar werd aber direkt wieder als Gast dann ins Forum zurückgeschickt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.03.2003, 12:49 Uhr
~andreasK
Gast


Hallo Uwe!
kannst du mir jetzt sagen, wie ich das machen muss unter .net?

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: