/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
[VB6] Problemer med timer-control
Fra : Jesper Stocholm


Dato : 24-03-03 14:08

Jeg har en sub, der afvikler en forespørgsel imod en database. Denne
forespørgsel kan potentielt tage en hel del sekunder. For ikke at give
det indtryk, at min applikation hænger, fik jeg den idé, at jeg ville
vise en form med en timer-control på, der ganske enkelt skriver

Query running
Query running .
Query running ..
Query running ...

(der skiftes hvert halve sekund)

i min knap, der afvikler min sub, har jeg koden

private sub Command_Click()
   frmTimer.show
   call doQuery(strSql)
   frmTimer.hide
end sub

Den viser sådan set meget fint min timer-form imens forespørgslen
afvikles, og den fjernes også fint igen. Problemet er at selve timer-
formen ser ud til at hænge - der vises ikke min "Query running ..." -
selvom autoredraw er sat til true.

Er der noget jeg har misforstået med anvendelsen af disse timer-controls
.... eller hvordan skal jeg sikre mig, at der står noget på denne form
mens min query foretages ?



--
Jesper Stocholm - www.stocholm.dk - www.asp-faq.dk
** De andre siger, at han er 16 **
Svar venligst til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

 
 
Tomas Christiansen (24-03-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 24-03-03 23:12

Jesper Stocholm skrev:
> Jeg har en sub, der afvikler en forespørgsel imod en database. Denne
> forespørgsel kan potentielt tage en hel del sekunder.
....
> Er der noget jeg har misforstået med anvendelsen af disse
timer-controls
> ... eller hvordan skal jeg sikre mig, at der står noget på denne form
> mens min query foretages ?

Husk lige på at du ikke har med multitrådet programmering at gøre!
Hvis VB6 er optaget af at vente på "noget" (som f.eks. en
database-forspørgsel), "hænger" resten af VB6 imens.

Du kan evt. sikre dig at din form bliver vist med alle de relevante
informationer (brug evt. en form.Refresh) INDEN forespørgslen sættes i
gang, men indholdet af forment vil ikke ændre sig under afviklingen af
forespørgslen.

Det kan selvfølgelig godt lade sig gøre (med visse temmelig store
begrænsninger) at få VB6 til at køre miltitrådet, men jeg vil bestemt
ikke anbefale det. Jeg har prøvet det ved flere lejligheder, og min
erfaring er at man bruger alt for lang tid på det og det kører ikke 100%
stabilt, men derimod ca. 99,99% og derfor er det ret svært at fejlsøge!

En sidste mulighed for dig er at starte en helt ny applikation, som kun
har til formål at vise at den første applikation er travlt optaget...

-------
Tomas


Jesper Stocholm (25-03-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 25-03-03 10:53

Tomas Christiansen <toc-nospam-01@blikroer.dk> skrev:
>Jesper Stocholm skrev:
>> Jeg har en sub, der afvikler en
>> forespørgsel imod en database. Denne
>> forespørgsel kan potentielt tage
>> en hel del sekunder.
>...
>> Er der noget jeg har misforstået
>> med anvendelsen af disse
>> timer-controls ... eller hvordan skal jeg sikre
>> mig, at der står noget på denne form
>> mens min query foretages ?
>
>Husk lige på at du ikke har med
>multitrådet programmering at gøre!

det regnede jeg godt med var svaret ... men jeg var dog ikke helt
sikker.

>Hvis VB6 er optaget af at vente på
>"noget" (som f.eks. en
>database-forspørgsel), "hænger"
>resten af VB6 imens.

Ok ... dvs i ren vb kan det slet ikke lade sig gøre at fortælle en
bruger, at der sker noget - evt med et skiftende billede - i en
anden del af applikationen [1] ?

>Du kan evt. sikre dig at din form
>bliver vist med alle de relevante
>informationer (brug evt. en
>form.Refresh) INDEN forespørgslen sættes i
>gang, men indholdet af forment vil
>ikke ændre sig under afviklingen af
>forespørgslen.
>
>En sidste mulighed for dig er at
>starte en helt ny applikation, som kun
>har til formål at vise at den
>første applikation er travlt optaget...

Keld (etellerandet) glemte at læse min signatur i mit indlæg og
skrev til mig privat, at jeg i stedet kunne forandre min markør,
og det giver faktisk det indtryk jeg ønskede ... :)

[1] En af mine venner sagde den anden dag, at VB ikke blev brugt
til "rigtige" applikationer - er dette en af årsagerne ?
--
Jesper Stocholm
http://stocholm.dk


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste