01. juni 2004 - 15:42Der er
10 kommentarer og 1 løsning
Programmet "snubler"
Jeg har lavet en applikation, der henter en masse data i en database og spytter det ud i 3 tekstfiler. Dette fungerer fint, når det gøres i én fil ad gangen.
Når jeg vil have den til at lave alle 3 filer på én gang, begynder der at blive problemer. Det foregår i en for-next løkke, hvor bl.a. filnavnet ændres.
Problemet er forskelligt fra gang til gang og helt tilfældigt. I nogle forsøg bliver teksten i filerne roddet rundt og gentaget et par gange, i andre forsøg når den til fil nr. 2 el. 3 før den begynder at køre i en uendelig løkke (og det er ikke løkkerne, der er noget i vejen med).
Det virker med andre ord som om applikationen "snubler" i den for-next løkke, og ikke helt kan følge med sig selv.
Jeg har prøvet delay/timer og andet, jeg har fundet her på Eksperten for at forsøge at give lidt "tænkepause" undervejs, men det hjælper ikke rigtigt.
Er der nogen der har været ude for det samme, eller ved hvordan problemet kan løses?
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Hvis vi havde været i december, havde jeg ikke været i tvivl, men på denne årstid må der være en anden forklaring :-)
Når hele koden står inde i denne løkke: --- For u=1 to 3
next u ---
...kommer de tilfældige fejl som beskrevet.
Sletter jeg derimod løkken og skriver i stedet u=1 og kører programmet, derefter u=2 og kører og derefter u=3 og kører, så får jeg mine 3 filer i smukkeste stand. Det er derfor, jeg føler mig rimelig sikker på, at det ikke er fejl i koden.
"nedlagt eventuelle objekter" var kodeordet. Lukning af databaseforbindelsen var inde i løkken, mens åbningen lå før. Mærkeligt at den ikke brokker sig over det, men blot fortsætter i en uendelighed. Det er måske ulempen ved at sprede "On error resume next" overalt i sin kode.
Når jeg ikke kan give kvajebajere, må jeg jo give kvajepoint. Lægger du et svar Martin?
Jeg er lidt bagud, for spørgsmålet her er jo sluttet. Men som spørgeren selv anfører kan det let gå galt når der anvendes 'On error Resume next'. Efter min mening burde den mulighed slet ikke findes. Det svarer til at afbryde alle ledninger til instrumentbrættet i en bil og bare glemme alt om olie og vand. Selvfølgelig skal 'on error' føre til en label med en bemærkning om hvor fejlen er, og desuden exit'te subrutinen. Fyda!
Og min egen kæphens: Sæt VB til at kræve variabeldeklaræring.
Ikke fordi det har noget med ovenstående at gøre, men livet (fejlfinding især) er meget lettere når man har sat det lille flueben under options
:o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.