Toon posts:

[vc++] While Loading show progress

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste guru's,

Ik heb een probleem waar ik niet uit kom. Ik heb een programma gemaakt dat bij het opstarten een database connectie maakt via ADO. Zoals je weet duurt dit enige tijd (paar seconden). Nu wil ik tijdens het connecten met de database een "splash screen" (dialog box) laten zien met daarin een progressbar die aangeeft hoelang het connecten nog duurt.

Ik heb hier bij GoT gezocht, bij google, MSDN codeproject etc. Maar ik weet echt niet hoe ik dit voor elkaar moet krijgen. Iemand enige idee? Ik hoop dat iemand mij een goede kant kan opsturen. Alvast bedankt !

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-08 12:28

Janoz

Moderator Devschuur®

!litemod

Om dit te kunnen doen zul je een manier moeten hebben om op te vragen hoe ver het database connecten al gevorderd is. Ik denk niet dat hiervoor een methode is.

Waarschijnlijk is het aanmaken van de connectie helemaal niet zo proccessor intensief en zit je computer die paar seconden vooral uit zijn neus te vreten en op zichzelf te wachten. Op zo'n moment zou je beter gebruik kunnen maken van threads. Op die manier kan je computer de db connectie opbouwen, en tegelijkertijd ook nog andere dingen doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Het kan op ongeveer 2000 manieren, maar een extra thread is waarschijnlijk het meest handig. Die tread moet dan een eigen window openen, en elke seconde een blokje tekenen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
Hey thnx jongens. Een thread daar was ik nog niet opgekomen. Maar om nog even in te gaan op Janoz...Heeft iemand een idee hoe je op vraagt hoe ver het database connecten al gevorderd is??

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:22

mulder

ik spuug op het trottoir

Volgens mij zul je dat niet snel kunnen opvragen, helemaal niet denk ik, je kunt denk ik beter 'busy' als feedback geven.

oogjes open, snaveltjes dicht


Verwijderd

Verwijderd schreef op 23 January 2003 @ 10:48:
Hey thnx jongens. Een thread daar was ik nog niet opgekomen. Maar om nog even in te gaan op Janoz...Heeft iemand een idee hoe je op vraagt hoe ver het database connecten al gevorderd is??
De State property van het Connection object werkt daar goed voor, zie http://msdn.microsoft.com...ado270/htm/mdprostate.asp

Tip: als je je dit soort dingen afvraagt helpt het om even te bladeren in MSDN ;)

Enjoy :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

MSalters schreef op 23 januari 2003 @ 10:44:
Het kan op ongeveer 2000 manieren, maar een extra thread is waarschijnlijk het meest handig. Die tread moet dan een eigen window openen, en elke seconde een blokje tekenen.
Ivm windows architectuur die niet altijd even fan is van multithreaded GUI's zou ik het andersom doen: open het window in je mainthread, start een worker-thread die de DB opent en post een message (PostMessage) naar de window van de mainthread zodra de 2e thread zichzelf afsluit (oftewel klaar is). Hoef je ook niets te synchronizeren.

Professionele website nodig?


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
curry684 schreef op 23 January 2003 @ 17:11:
[...]

Ivm windows architectuur die niet altijd even fan is van multithreaded GUI's zou ik het andersom doen: open het window in je mainthread, start een worker-thread die de DB opent en post een message (PostMessage) naar de window van de mainthread zodra de 2e thread zichzelf afsluit (oftewel klaar is). Hoef je ook niets te synchronizeren.
Is wel zo netjes, ja, zeker als je meer dingen in parallel wil initializeren.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1