Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen!!!

Ich arbeite gerade mit Visual C++ 6.0 an einer Anwendung mit ODBC-Anbindung (Access 2000).

Ich habe beim Erstellen mit dem Anwendungsassistenten alle Tabellen der DB angegeben. Wenn ich

jetzt aber mit Open() das Recordset so umbiegen will, das ich nur die Daten einer Tabelle bekomme,

schreibt die Anwendung diese Daten in die ersten Variablen, die in DoFieldExchange(...) angegeben

sind, und nicht in die korrekten Variablen der Tabelle.

Danach habe ich es mit m_pDatabase->ExecuteSQL("SELECT * FROM interpret") versucht, aber die

Methode ExecuteSQL liefert scheinbar keine Daten.

Weiss einer von Euch, wie ich das hinbekommen könnte?

hier noch ein kleiner Code-Ausschnitt:


void CMP3VerwaltungView::fillCboInterpret(void)

{

   // einlesen der Interpretentabelle in das Recordset

   m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE, "SELECT * FROM haupt", 0);

   //m_pSet->Requery();


   // füllen des Interpreten-Combofeldes

   if(!m_pSet->IsEOF())

   {

      m_pSet->MoveFirst();

   }


   while(!m_pSet->IsEOF())

   {

      m_cInterpretB.AddString(m_pSet->m_Album);


      m_pSet->MoveNext();

   }

}

Schönen Feiertag noch, k.o.b

hallo!

funzt das nicht so:

m_pDB->m_strFilter="SELECT * FROM 'Spalte'"

m_pDB->Requery();

und dann durchhoppeln.... ;)

bigredeyes

servus bigredeyes!!

ich dachte schon, da wüsste niemand bescheid.

danke für den tipp, ich werd ihn heute abend mal ausprobieren. ich meld mich dann nochmal, ob es geklappt hat.

k.o.b

@kingofbrain:

Ursache des Problems dürfte sein, dass die vom AppWizard automatisch generierte von CRecordset abgeleitete Klasse genau auf die Abfrage zugeschnitten ist, die Du durch die Auswahl der Tabellen zu Anfang festgelegt hast. Da lässt sich nichts umbiegen, weil die Klasse mitsamt Ihren Membern praktisch nur mit genau dieser Abfrage funktioniert.

Ich würde empfehlen, für eine andere Abfrage selbst eine Klasse von CRecordset abzuleiten. Die generierte Klasse kann ja als Vorlage dienen.

Das CRecordSetMember m_strFilter beinhaltet ja soz. die WHERE-Klausel. Damit lassen sich dann Abfragen über mehrere Tabellen (also Joins z.B.) durchführen.

Ich verstehe nun Dein Problem nicht. Ich habe auch mehrere Tabellen in der GetDefaultSQL()-Methode angegeben.

Wenn ich nun die RecordSet-Instanz so öffne:

m_Intsanz->m_strFilter="irgendeinespalte<>40";

m_Intsanz->Open(AFX_DB_USE_DEFAULT_TYPE,NULL,CRecordset::executeDirect);

...dann funzt es auch.

Vielleicht gehts ja bei Dir dann auch ?!

Just my 2Cents...

hallo ich nochmal!

wenn mir der wizard die CRecordset-sachen erstellt hat, gab's bei mir auch schon des öfteren probleme....

ich mach mir das in letzter zeit lieber alles selber...

erst mal ein CDatabase-obj. anlegen, und dann massig CRecordsets....

aber muss jeder selber wissen...

bigredeyes

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.