ableitung von CRecordset
-
Kann mir jemand helfen?
Was ist an dem nachfolgenden Code falsch?MyRecord *m_pSet; m_pSet = new MyRecord(NULL); m_pSet->MoveFirst(); m_art = m_pSet->m_Art; UpdateData(FALSE);
Also ich hab mir ne Klasse MyRecord(wie orginel
) von CRecordset abgeleitet und ODBC etc damit verknüpft.
ich hab mir einen Zeiger auf diese Klasse eingerichtet und ihn m_pSet genannt und initialisiert. Nunn hab ich gedacht spring ich auf den ersten Datensatz mit MoveFirst() und lese dort die Zelle m_art aus.
Wenn nun aber diese minifunktion läuft crasht sie mit einem "Debug Assertion Failed".Wo liegt mein Denkfehler ?
-
Hallo !
Hast du auch irgendwo ein
m_pSet->Open();
?
Und abschliessend nicht das
m_pSet->Close();
vergessen !
Tschüss
-
das öffnen und schließen der Databse mache ich über
[code]
if( databerse.OpenEx(sql,CDataberse::noOdbcDialog) )
{
.
..
...
}[/code]bzw.:
databerse.Close();
**
Ist das jetzt ein Trugschluß oder kann ich mit der abgeleiteten Klasse von CRecord auf die mit CDataberse geöffnete Datenbank zugreifen ?
Hintergrund ist das ich bei der Initialisierung des Programms eine neue Exceldatei anlege mit einem festen Namen. Ebenfalls werden die Datenblätter und die Spalten bei der Initialisierung angelegt das das alles gleich bleibt.
Beim beenden des Programms wird das Excelfile geschossen und in ein Archivfolder kopiert und aus dem Programmpfad gelöscht.
Wenn ich dich jetzt richtig verstehe muß ich nach dem erstellen des Excelfiles über CDataberse ein close machen und mit der Ableitung von CRecordset die Databse neu öffnen ?Automatische Rechtschreibkorrektur wurde aktiv.
-
dat**aberse ?
Die neue Rechtschreibkorrektur haut ja voll rein, aber das wird schon noch !
Eigentlich ist mir nur aufgefallen, dass in deinem ersten Quellcode kein Open und Close vorkommt. War eben ein erster Gedanke.
Kannst ja mal ausprobieren, ob es so besser klappt, ansonsten weiss ich jetzt gerade auch nicht weiter...
MyRecord *m_pSet; m_pSet = new MyRecord(NULL); m_pSet->Open(); m_pSet->MoveFirst(); m_art = m_pSet->m_Art; UpdateData(FALSE); m_pSet->Close();
Automatische Rechtschreibkorrektur wurde aktiv.
**
-
Hm die Idea war gut,
doch jetzt sagt er mir das er hinter das Ende oder vor den Anfang der Daten springen wollte obwohl die Exceldatei gefüllt ist ?
Also nochmal für zum Verständnis ich arbeite an einen Prog was mir ein Excelfile mit Tabellen und Spalten anlegt.
Diese will ich füllen und auslesen. Das füllen übernimmt
CDat**aberse.ExecuteSQL(SQL-Kommando) das funktioniert auch. Nun wollte ich aber in den Daten auch Blättern können und hab mir einen "First" einen "Last" einen "Netx" und eine "Prev" Button angelegt. Hinter diesen Buttons liegen Funktionen die mir entsprechend die Daten anzeigen sollen. Doch schon bei der "First" Funktion wo ich eigentlich nur ein CRecordset.MoveFirst() mache sagt er mir das ich hinter das Datenende oder vor den Datenanfang springen will.
Irgendwie hab ich jetzt leicht den Faden verloren. Und um die Antwort vorweg zu nehmen ich kann die beiden Einträge im FAQ schon fast auswendig aber die helfen da auch nicht weiter.
Hat noch jemand ne Idee ?Automatische Rechtschreibkorrektur wurde aktiv.
**
-
vielleicht hilft Dir ja das weiter, mußt mal anschauen
http://mitglied.lycos.de/ehenkes/mfc_einsteigerbuch_kapitel12.htm