Net-srac Geschrieben 19. November 2001 Geschrieben 19. November 2001 Hi Programmers, Ich sizt hier im Augenblick an einer Datenbankanwendung und versuche eine Oberfläche zu schreiben, über die ich verschiedene Aktionen auf bestimmten Tabellen ausführen kann. Die DB-Anbindung hab ich über den Assistenten gemacht, da ich selbst noch nicht sooo fit im VC6.0 bin. (Warum sollte man sie auch nicht nutzen. ) Also folgendes. Wenn ich bei diesem Assistenten nur eine Tabelle (BSP: [waren]) meiner Datenbank auswähle und dann auf Fertigstellen drücke macht er mir ja meine Anwendung fast fertig. Dann halt nurnoch Felder einfügen, über den Class-Wizard mit den Variablen aus der DB verbinden und schon bin ich fertig. Jetzt hab ich mal nen Button eingesetzt, bei dem auf OnClick ein Datensatz ausgewählt werden soll. das hab ich so gemacht. CString szSQL; szSQL.Format("SELECT * FROM waren Where EAN = \'4003683107109\'"); m_pSet->Close(); m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,szSQL); UpdateData(FALSE); Das klappt super, und er zeigt mir auch dem Datensatz an. Genauso kann ich auch jetzt sagen. szUPSQL.Format("UPDATE Lager SET LG_Stueck = LG_Stueck +1 WHERE LG_EAN = \'4003683107109\'"); m_pSet->m_pDatabase->ExecuteSQL(szUPSQL); Und er trägt mir in die Tabelle Lager bei LG_Stueck den um 1 erhöhten wert ein. Das Problem: Wenn ich mir nun den Wert, den ich gerade in der Tabelle Lager erhöht habe mir einer SQL-Abfrage holen will sagt er "Falscher Deskriptorindex". Die abfrage dazu lautet ja. szLGSQL.Format("SELECT LG_StueckFROM Lager Where LG_EAN = \'4003683107109\'"); m_pLagerSet->Close(); m_pLagerSet->Open(AFX_DB_USE_DEFAULT_TYPE,szLGSQL); Das ist nicht das einzige. Wenn ich eine neue Anwendung über den Assistenten erstelle und nicht eine sondern alle Tabellen auswähle klappt nichtmal Punkt 1 oder 2. Dann bekomme ich jedesmal einen "FALSCHEN DESKRIPTOPINDEX" Ich hab keine Ahnung wie ich das Lösen kann und bin auf euch angewiesen. Die Feldnamen, und Tabellen stimmen, das hab ich schon überprüft. Hoffe jemand von euch hat nen lösungsvorschlag damit ich nicht hier meine Anwendung nur auf einer Tabelle basierend schreiben muß. Zitieren
gugelhupf Geschrieben 19. November 2001 Geschrieben 19. November 2001 Tach Hab dasselbe Problem *ggg* Auch ich kann in KEINER Select-Anweisung irgendeinen Spaltennamen angeben. Ich hol halt immer Datensaätze ab und bau mir in Where-Klausel alles zusammen. Zu Deinem zweiten Problem: Ersetze AFX_DB_USE_DEFAULT_TYPE durch NULL, dann gehts ;-) Zitieren
Net-srac Geschrieben 19. November 2001 Autor Geschrieben 19. November 2001 Prima mußte nurnoch snapshop in dynaset ändern und jetzt gehts. fast... Ich hab jetzt meine Abfrage gestellt, aber irgendwie ordnet der das jetzt hier void CTestSet: :DoFieldExchange(CFieldExchange* pFX) nicht mehr richtig den einzelnen Variablen zu. Der schreibt einfach das ganze Recordset von oben nach unten, obwohl da ganz andere membervariablen stehen :confused: :confused: . Muß ich da jetzt diese Liste der Variablen so anordnen, dass er es immer in die richtigen tut? Nein oder? Wo soll denn jetzt der Hund begraben liegen? Thnx4Help Zitieren
gugelhupf Geschrieben 21. November 2001 Geschrieben 21. November 2001 Hast du die zweite Tabelle einfach mit reingeschrieben, oder hast sie vom Klassenassistenten erstellen lassen ? Im ersten Fall musst du per Hand ein paar Einträge nachholen, z.B. m_nFields ist anzupassen. Zitieren
Empfohlene Beiträge
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.