Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » ODBC auf Tabelle zugreifen

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 <
000
18.07.2004, 18:45 Uhr
bbatec



Hallo,

ich habe eine ACCESS-Datenbank mit einer Tabelle erstellt und habe Sie in meien MFC-Anwendung angebunden. Hat auch prima geklappt, ich konnte auf die Daten zugreifen. Jetzt habe ich in der Datenbank eine weitere Tabelle erzeugt, und wollte auch auf die Daten der Tabell zugreifen. Beim Compalieren
bekomme ich keine Fehlermeldung. Nur wen ich die Funktion Open aufrufe bekomme ich die Fehlermeldung " 1 Parameter wurden erwarten, aber es wurden zu wenig Parameter übergeben".

Hier den Code wo ich die TAB2 hinzugefügt habe.

C++:
[CString CTAB_DIENSTLEISTUNG::GetDefaultSQL()
{
    return _T("[TAB_TAB1],[TAB_TAB2]");
}]

Natürlich habe ich die Variablen der zweiten Tabelle auch hinzugefügt.

void CTAB_DIENSTLEISTUNG::DoFieldExchange(CFieldExchange* pFX)
{
    pFX->SetFieldType(CFieldExchange::outputColumn);

    RFX_Text(pFX, _T("[Materialnummer]"), m_Materialnummer);
    RFX_Long(pFX, _T("[Arbeitseinheiten]"), m_Arbeitseinheiten);
    
    
    RFX_Text(pFX, _T("[TAB_TAB2].[V_Materialnummer]"), m_VMaterialnummer);
    RFX_Text(pFX, _T("[TAB_TAB2].[V_Materialbeschreibung]"), m_VMaterialbeschreibung);
    RFX_Long(pFX, _T("[TAB_TAB2].[V_Tabellenkennung]"), m_VTabellenkennung);

}


Wo muss ich noch die 2. Tabelle hinzufügen oder Parameter ändern?

Danke

Dieser Post wurde am 19.07.2004 um 01:33 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.07.2004, 09:51 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Poste mal eden Open Code. Du hast imho vergessen einen Parameter zu übergeben.

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.07.2004, 12:22 Uhr
bbatec




Zitat von mike:
Hi!
Poste mal eden Open Code. Du hast imho vergessen einen Parameter zu übergeben.

mfg


Hallo mike,

hier der Code

C++:
CTAB_DIENSTLEISTUNG tab1;  // von CRecordSet abgeleitet

tab1.Open(Null,"TAB_TAB1",0)
...
...
tab1.Close();



Sobald ich in der DoFieldExchange
die Zeilen

C++:
{
   ......
   .....
    RFX_Text(pFX, _T("[TAB_TAB2].[V_Materialnummer]"), m_VMaterialnummer);
    RFX_Text(pFX, _T("[TAB_TAB2].[V_Materialbeschreibung]"), m_VMaterialbeschreibung);
    RFX_Long(pFX, _T("[TAB_TAB2].[V_Tabellenkennung]"), m_VTabellenkennung);
}


für die Zweite Tabelle einfüge bringt er mir bei der Open- Funktion die Meldung das paar Parameter fehlen. Obwohl ich nur versuche die erste Tabell zu öffnen.

Füge ich die oberen 3 Zeilen und die Variablen für die 2. Tabellle nicht zu, meckert er auch nicht!

Gruß
bbatec

Dieser Post wurde am 19.07.2004 um 12:25 Uhr von bbatec editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.07.2004, 12:51 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Du hast zuviele Parameter übergeben:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_crecordset.3a3a.open.asp
Die Parametr ändern sich mit den übergebenen Datentyp (siehe Sample unten)

mfg
--

Dieser Post wurde am 19.07.2004 um 12:52 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.07.2004, 13:18 Uhr
bbatec




Zitat von mike:
Hi!
Du hast zuviele Parameter übergeben:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_crecordset.3a3a.open.asp
Die Parametr ändern sich mit den übergebenen Datentyp (siehe Sample unten)

mfg


Hallo mike,

danke für deine mühe, aber wo meinst du den Genau in der Open()
oder?

Gruß

bbatec
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.07.2004, 14:54 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ganz unten in der MSDN "The following code examples show different forms of the Open call."
Oder hast beim Ableiten der Klasse ein eigenes Open geschrieben?

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.07.2004, 08:37 Uhr
bbatec



Hallo,

erstmal vielen Dank für die Antworten!

Nur noch mal zum Verständniss.

Ich habe in dem Buch Visual C++ Windows Progr. mit den MFC" ein Beispiel gefunden wo man über eine von CRecordSet abgeleiteten Klasse auf beiden Tabellen in der Datenbank zugreift, allerdings nur zum Lesen.
Meine Frage, kann es vielleicht so sein dass man zum "Lesen" auf mehrere Tabellen zugreifen kann, will man aber Datensätze hinzufügen, dann nur aber über 2 von CRecordSet abgeleiteten Klassen (für z.B. 2 Tabellen in der Datenbank)?

Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: