Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Datenbankproblem

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
14.05.2004, 09:52 Uhr
~hanniplastik
Gast


moin, hab da mal wieder son Problem mit meiner Access Datenbank.
Arbeite mit vc++ 6.0 und access 97.
Ich greife über eine daorecordset klasse auf meine Datenbank zu.
Wenn ich nun jedoch datensätze in meine Datenbanktabelle einfüge, meist sind dass dann 50 oder so mittels addnew in for-schleife, dann fängt er zwar mit dem ersten an, manchmal ist es aber so, dass er zwischendrin anfängt wieder vor den ersten Datensatz zurückzuspringen und mir so die reihenfolge durcheinander bringt. Das passiert nicht immer, aber manchmal, konnte den Auslöser bisher noch nicht feststellen. Ich benutze keinen index und hatte es eigentlich auch nicht vor. access97 benutzt die jet3.0, und da sollte sowas eigentlich laut msdn schon nicht mehr vorkommen.
Hat jemand nen Plan, wie man ihn dazu zwingen kann, immer am Ende einzufügen?
Hab schon mit set bookmark und so rumgespielt, aber das bekomm ich einfach nicht gebacken.

mfg
hanniplastik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.05.2004, 21:18 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Warum arbeitest Du nicht einfach mit INSERT INTO-Statements?
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.05.2004, 13:46 Uhr
~hanniplastik
Gast


weiß ehrlich gesagt nicht, was das ist.
hast du vielleicht ein kleines Beispiel?

mfg

hanniplastik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.05.2004, 18:08 Uhr
~daDings
Gast


ähhh... ist mir eigentlich noch nie passiert und arbeite seit gut 2 Jahren mit Datenbanken.
Als mögliche Ursache kann ich mir nur vorstellen, daß du in der Datenbank irgendwie herumsortierst. Möglich wär auch noch, das du nicht immer rs.Update() schreibst und oder Datenbestände (wie auch immer) löscht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.05.2004, 08:26 Uhr
~hanniplastik
Gast


moin,
eigentlich mache ich nichts besonderes.
Weder sortieren, noch noch sonst irgendetwas.
ohne update würde er die daten ja gar nicht übernehmen.
ich poste mal die for-schleife:

C++:

m_dbMess.open();
        for(i=1;i<=m_dbVar.m_RPANZPKT;++i)
        {
        

        m_dbMess.AddNew();
        m_dbMess.m_DATE = datum;
        m_dbMess.m_TIME = zeit;
        m_dbMess.m_MESSWERTNR = i;
        m_dbMess.m_WANDLER = wandlername;
        m_dbMess.m_PRUEFER = pruefer;
        m_dbMess.Update();
    
    
        }    

    m_dbMess.Close();



diese Art der Datensatzerstellung benutze ich an 2 unterschiedlichen Stellen.
An beiden treten dann zu unterschiedlichen Zeitpunkten Fehler auf.
ich weiß aber nicht , warum?!?

mfg
hanniplastik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.05.2004, 08:54 Uhr
~daDings
Gast


Ehrlich gesagt: Keine Ahnung. Versuch mal folgendes: Setze einen Haltepunkt beim Close. Lass das programm bis dahin laufen. Überprüfe dann die Datenbank ob die Einträge stimmen. Wenn ja passiert vermutlich doch an anderer Stelle noch was anderes. Wenn die Daten noch immer nicht stimmen (oder nur manchmal) weiß ich auch nicht mehr weiter.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.05.2004, 14:12 Uhr
~hanniplastik
Gast


moin,
erstmal danke für deine Mühen,
aber das hab ich auch schon ausprobiert.
ich hab einfach hinter das AddNew ein Sleep gesetzt und mir dann Schritt für schritt die Einträge angeschaut.
Er fängt erst richtig an, verliert dann aber irgendwann das Ende und trägt dann zum beispiel nach 25 neuen richtig eingetragenen Datensätzen den 26. vor dem ersten von den 25 ein.
Als würde er den Datensatzzeiger verlieren und dann wieder den vorher gültigen ( den vorm Ausführen der addnew schleife letzten) benutzen.
Woran könnte das denn liegen? Das zerbretzelt mir dann immer meine weitere Datenverarbeitung, weil die Reihenfolge nicht mehr stimmt...
mfg

hanniplastik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.05.2004, 14:34 Uhr
~daDings
Gast


bad news part 3
Von der Ferne ist das Problem wohl nicht mehr zu lösen. Wenn du magst kannst es mir schicken über ICQ ich sehs mir bei Gelegenheit mal an.

ICQ 19711052
(Email-addi rück ich ned raus)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.05.2004, 14:59 Uhr
~hanniplastik
Gast


moin, hätte ich im Forum auch nicht gemacht!!!
Schicken geht eh nicht, da das Projekt dafür ein wenig zu umfangreich ist.
da hängt noch ein bißchen mehr dran.
trotzdem danke für deine Hilfe, vielleicht weiß noch jemand anders Rat, der das Prob kennt, oder so?!?!

mfg

hanniplastik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.05.2004, 10:15 Uhr
~hans2k
Gast


man kann bei der Access-Datenbank auch SQL-Befehle benutzen.
beim einfügen der Datensätze in eine Tabelle sieht das so aus:

INSERT INTO Tabellenname Spalte1 = Wert1, Spalte2 = Wert2 etc
und das geht programmtechnisch mit der funktion ExecuteSQL()

hier ein beispielcode aus der MSDN:


Code:
CString einfuegen = "INSERT INTO Tabellenname Spalte1 = Wert1, Spalte2 = Wert2;";

TRY
{
   datenbankzeiger.ExecuteSQL( einfuegen);
}

CATCH(CDBException, e)
{
   // The error code is in e->m_nRetCode
}

END_CATCH




habs so auch gemacht und ein komplettes Terminplanerprogramm mit einer Access-Datenbank realisiert. war recht einfach mit den SQL-Statements...

greetz
hans2k
 
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: