Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Datensätze zählen

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
07.09.2007, 14:12 Uhr
Patricia



Hallo,

ich hab eine Anwendung, die mit einer Accessdatenbank verbunden ist.
Nun zu meinem Problem:
an der stelle

C++:
p_set1_count->Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT DISTINCTROW COUNT([ID]) as [Anzahl] from Tabellenname");



bricht das Programm ab wenn mehr als 255 Datensätze in der Tabelle sind.
Hat jemand ne Idee woran das liegen könnte?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.09.2007, 16:24 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Was heißt das Programm "bricht ab"?

Was bekommst du für eine Meldung? Wie sehen die Rückgabewerte bzw Exceptions aus?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.09.2007, 17:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


braucht das programm evtl einfach zu lange um die doppelten zu finden?
oder evtl löscht die db durch deinen COUNT-aufruf alle zeilen bis auf eine, und du liest irgendwo danach über irgendwas raus und es stürzt ab?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.09.2007, 12:26 Uhr
xXx
Devil


Ehm hast du irgendwo irgendeinen falschen Datentype genommen? 255 wäre das Limit für einen unsigned char ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.09.2007, 07:44 Uhr
Patricia




Zitat von Guybrush Threepwood:
Was heißt das Programm "bricht ab"?

Was bekommst du für eine Meldung? Wie sehen die Rückgabewerte bzw Exceptions aus?


Die Fehlermeldung die kommt ist Fehlermeldung beim Abruf eines Datensatzes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.09.2007, 10:56 Uhr
Patricia




Zitat von xXx:
Ehm hast du irgendwo irgendeinen falschen Datentype genommen? 255 wäre das Limit für einen unsigned char ...

Das Programm ist nicht von mir, ich darf nur den fehler finden
Wäre das Problem mit dem Datentyp nicht erst beim Auslesen des Recordsets, also nach der Abfrage?

Dieser Post wurde am 10.09.2007 um 10:57 Uhr von Patricia editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.09.2007, 12:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was genau kriegst du denn für eine fehlermeldung - und evtl schreib mal ein paar zeilen davor und danach vom code hier rein, dann können wir dir evtl auch helfen und nicht nur raten
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.09.2007, 12:57 Uhr
Patricia



Die Fehlermeldung hab ich heut morgen schon geschrieben.
In dem Fehlerdialog steht "Fehler beim Abruf eines Datensatzes." also nix wirklich aussagekräftiges.

hier der Anfang der Methode:

C++:
CString anzahl,jahr,monat;
C_Set_Belege* p_set1_count;
p_set1_count = new C_Set_Belege();

m_jahr2.GetLBText(m_jahr2.GetCurSel(),jahr);
monat.Format("%2i",(m_monat2.GetCurSel()+1));
monat.Replace(" ","0");

p_set1_count->Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT DISTINCTROW COUNT([ID]) as [Anzahl] from Tabellenname");

p_set_belege->m_strFilter = "(MONTH(DatumRechnung) = "+monat+" and YEAR(DatumRechnung) = "+jahr+" or MONTH(DatumGutschrift) = "+monat+" and YEAR(DatumGutschrift) = "+jahr+") and (BArt = 7 or BArt = 8 or BArt = 10 or BArt = 11) and Dauer = 0";
p_set_belege->m_strSort = "DatumRechnung";    
p_set_belege->Requery();

p_set1_count->GetFieldValue("Anzahl",anzahl);



Der Fehler kommt genau an der Stelle des p_set1_count->open
Und wie gesagt es kommt auch nur wenn die Abfrage mehr als 255 liefert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.09.2007, 14:08 Uhr
Bruder Leif
dances with systems
(Operator)


Mich wundert dabei spontan erst mal, dass count() und distinctrow in einer Abfrage zusammen stehen... hat Access vielleicht Probleme damit? Aber warum dann je nach Wert mal ja, mal nicht... öhm...?!?
--
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
009
10.09.2007, 14:52 Uhr
Patricia




Zitat von Bruder Leif:
Mich wundert dabei spontan erst mal, dass count() und distinctrow in einer Abfrage zusammen stehen... hat Access vielleicht Probleme damit?


Naja die ID ist nicht der eindeutige Wert um den datensatz eindeutig zu erkennen. Daher kommt sie mehrfach vor soll aber nur einmal gezählt werden. Wie gesagt das ganze ist nicht vom mir daher versteh ich da auch ned alles... Wenn ich die Abfrage im Access ausführe bekomme ich als Ergebnis die 283 was der korrekte Wert ist. Somit sollte meiner Meinung nach klar sein, dass Access damit kein Problem hat.


Zitat von Bruder Leif:

Aber warum dann je nach Wert mal ja, mal nicht... öhm...?!?


Hm... jo das ist die große Frage die ich auch ned ganz verstehe. Es ist halt sehr verdächtig, dass es genau bei bis 255 geht und dannach nichtmehr.
 
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: