[VB-ADO] EOF Problemen.

Pagina: 1
Acties:

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
In Visual Basic 6.0 heb ik een probleem met het volgende:
Ik heb een connectie naar een access database en een formulier waar databound velden op zitten. Nu heb ik er een navigatie opgemaakt die de recordset doorloopt en waar ik dus ook controleer of hij niet .EOF wordt. Dit loopt als een zonnetje.

Maar nu heeft Visual Basic ook een event, bij de connection manager, genaamd Recordset_EndOfRecordset. Deze dient dus gestart worden wanneer die recordset EOF wordt, maar dit gaat niet goed. Bij het 300 record springt deze aan en krijg ik dus een melding dat mijn recordset.eof is. Terwijl als ik daarna nog een keer op de 'volgende record knop' druk, dan gaat hij wel weer een record verder.

Waarom wordt deze event gestart dan? Zat zelf te denken dat hij nog niet helemaal klaar is met fetchen en dat hij daarom gestart wordt, maar dan zou hij het ook niet goed in het forumulier moeten doen.

Verwijderd

Gebruik je een 'Do While ..... Loop' of een 'While ..... Wend' ?
Een Do-Loop controleerd de waarde in het begin v/d loop en een While-Wend op het einde van de loop. Dit kan misschien je probleem al zijn.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Geen van beiden.....het is gewoon een event van VB. Deze dient dus ook maar lekker zelf af te handelen :)

Edit 2:Heb net mijn caching maar eens op 400 records gezet en dan gaat het wel goed :? Er zitten 325 in de desbetreffende recordset. Maar ja dit is niet echt een oplossing voor mij. Weet namelijk nooit hoeveel records erin zitten en om nu eerst de record te gaan tellen en dan de caching goed te zetten lijkt me nu ook weer niet alles.

edit:
Vindt het alleen frappant dat het op de 300ste record gebeurd.....dacht dus dat het mischien met caching te maken had, maar het maakt niet uit op hoeveel records ik dat zet.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Je zou ook recordset.eof = true kunnen gebruiken?

Hmm, qua caching, nooit gebruikt. Je zou de recordcount (eerst movelast, dan movefirst, dan recordset.recordcount) kunnen bekijken en daar de caching op baseren.

Ik heb echter nooit een connection manager oid gebruikt :)

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
In mijn formulier werkt verder alles goed, dus daar zit het probleem niet, het gaat me erom dat die event in VB niet goed werkt. Dan kan ik wel kijken of hij .eof is, maar dat is dan weer een beetje dubbel.

Enne recordset.eof = true is ook een beetje dubbel he :)

Verwijderd

Dat maakt toch nix uit, als het maar werkt, je programma hoeft niet per se helemaal netjes te zijn, of is het een schoolopdracht???

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Nee het is niet voor school, maar daarom wil ik hem nog wel netjes houden en als netjes nu het enige was. Maar wat als ik 100.000 records heb en ik ga die allemaal cachen, denk dat dat toch wel wat van mijn resources gaat vreten.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 24 september 2002 @ 17:29:
Dat maakt toch nix uit, als het maar werkt, je programma hoeft niet per se helemaal netjes te zijn, of is het een schoolopdracht???
Nou hoop ik maar dat _jij_ nooit ook maar in de buurt kom van een projectteam waarin ik werk. :( Wat is dat nou weer voor een instelling? 'Als het maar werkt, het hoeft niet goed te zijn'

Nee, met deze mentaliteit ben je duidelijk niet geschikt om professionele software te ontwikkelen. Ik zou trouwens ook geen huis laten bouwen door iemand die zo dacht....

Verwijderd

/me moet beter lezen.....

Kun je er niet omheen werken, zodat je Recordset_EndOfRecordset niet meer nodig hebt. Dus bij iedere DB actie een controle op EOF/BOF.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Ja dat kan ik wel doen, maar het leek me nu net zo'n makkelijke event, daarom wou ik hem ook graag gebruiken.....zit me rot te zoeken of het mischien een bug is, maar dat wil ook nog niet echt lukken.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:19

TeeDee

CQB 241

Kan je niet alle records counten en daar je recordset cache op baseren?

/edit:

en dan plus 30 doen oid?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Jah dat kan ik wel doen, maar wat als het heel veel records zijn? En dan gaat het nut ook een beetje van deze event weg, aangezien ik dan ook wel ff snel in het formulier kan kijken of de recordset.eof is.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Supervisor schreef op 24 september 2002 @ 18:01:
Jah dat kan ik wel doen, maar wat als het heel veel records zijn? En dan gaat het nut ook een beetje van deze event weg, aangezien ik dan ook wel ff snel in het formulier kan kijken of de recordset.eof is.
Kijk je of de recordcount boven getal x (300) is, zo ja, cache dan niet alles maar elke 300. Ideetje?

Verwijderd

Glimi schreef op 24 september 2002 @ 17:43:
[...]

Nou hoop ik maar dat _jij_ nooit ook maar in de buurt kom van een projectteam waarin ik werk. :( Wat is dat nou weer voor een instelling? 'Als het maar werkt, het hoeft niet goed te zijn'

Nee, met deze mentaliteit ben je duidelijk niet geschikt om professionele software te ontwikkelen. Ik zou trouwens ook geen huis laten bouwen door iemand die zo dacht....
Niet overdrijven hoor :r, maar was ook niet van plan om professioneel te programmeren. Dus maak je daar maar geen zorgen om

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

Heeft dat ding niet een property waarmee je kan aangeven wat ie moet doen bij BOF/EOF?
Actioneof, eofaction, zoiets :? (what_to_do_on_eof enum :P).

PS wil je de gebruiker 300 (of meer) records laten door bladeren op zoek naar de juiste? Misschien kun je dan beter een listview oid tonen met wat zoekvelden, waar je de juiste uit kunt laten selecteren. Imho werkt dat "bladeren" heel vaak best onhandig, zeker als dat de enigste manier is.

Exact expert nodig?


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Dat is juist hetgene wat hij moet doen bij eof......dat event dient alleen te starten als een recordset eof is :( , dit wordt verder door vb geregeld, maar op de een of manier doet hij dat al eerder.

Nee en de gebruiker hoeft er niet door heen te bladeren, maar die mogelijkheid is er wel. Er zit ook een dropdown box en zoek mogelijkheden op.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Iemand mischien al een ideetje gekregen? Is snap echt niet waarom de .eof afhandeling wel goed in het forumulier gaat. Het is namelijk dezelfde recordset, dus als ie daar ziet dat hij .eof is, dan moet het toch ook goed gaan in de connectionmanager :?

Verwijderd

Je kunt ook proberen de om de recordset event af te vangen i.p.v. het connection object event. De Recordset klasse bevat nl. ook een EndOfRecordSet event oid.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
ooh maar die bedoel ik ook....mischien niet helemaal duidelijk omschreven, maar dat probeer ik dus wel.
Pagina: 1