Avatar billede Slettet bruger
23. november 2005 - 11:30 Der er 12 kommentarer og
1 løsning

Tjek for fejl i loop og stop hvis der er fejl

Jeg har et loop hvor jeg tjekker om noget er true eller false, hvis den er true hele vejen igennem skal den køre et script og hvis det er false skal den stoppe og melde en fejl.

Jeg har nedenstående kode der måske beskriver problemer bedre:

IF request.querystring("Sendbest") = "true" Then
Set RSSend2 = Conn.execute("Select * from tabel where Kundenr = '"&Session("kundenr")&"'")
Do while not RSSend2.EOF
Set RSSend3 = Conn.execute("Select * from Tabel1 where ID = "&RSSend2("Produktnr")&"")
VarDispFor = RSSend3("Disponibel")
VarDispAnt = RSSend2("Antal")
IF VarDispFor < VarDispAnt Then

meld fejl og slut script

end if
RSSend2.Movenext
Loop

scriptet fortsætter hvis der er ikke er fejl...
Avatar billede fennec Nybegynder
23. november 2005 - 11:35 #1
IF request.querystring("Sendbest") = "true" Then
Set RSSend2 = Conn.execute("Select * from tabel where Kundenr = '"&Session("kundenr")&"'")
Do while not RSSend2.EOF
  Set RSSend3 = Conn.execute("Select * from Tabel1 where ID = "&RSSend2("Produktnr")&"")
  VarDispFor = RSSend3("Disponibel")
  VarDispAnt = RSSend2("Antal")
  IF VarDispFor < VarDispAnt Then
    response.write "FEJL"
    exit do
  end if
  RSSend2.Movenext
Loop
Avatar billede Slettet bruger
23. november 2005 - 11:48 #2
kører den så ikke det script der kommer efter loop?
Avatar billede Slettet bruger
23. november 2005 - 11:51 #3
jo den gør, den skal hoppe helt ud og stoppe scriptet...
Avatar billede fennec Nybegynder
23. november 2005 - 11:58 #4
Er vi så helt ude i en response.end??

  IF VarDispFor < VarDispAnt Then
    response.write "FEJL"
    response.end
  end if
Avatar billede Slettet bruger
23. november 2005 - 12:01 #5
næ det er heller ikke nok den fortsætter og laver en fejl...møstisk
Avatar billede fennec Nybegynder
23. november 2005 - 12:16 #6
Så kommer den ikke ind i if sætningen.
Response.end afbryder HELE scriptet.
Avatar billede Slettet bruger
23. november 2005 - 12:56 #7
Nej det gør den heller ikke..prøv af lur spørgsmålet...der er en if sætning i starten af scriptet.

Scriptet er en del af et længere script, men hvis det script vi arbejder med fejler skal den afbryde hele scriptet
Avatar billede Slettet bruger
23. november 2005 - 13:00 #8
Jeg forklarer lige hvad scriptet gør, det kan være det hjælper:

Scriptet skal afslutte en bestilling. Bestillingen udgør nogle varelinjer som alle har et disponibelt antal, hvilket indikerer hvor mange varer der er tilbage.

Det som scriptet vi arbejder med gør er at tjekke at hver varelinjes disponible antal ikke er mindre end det antal der er bestilt.

Hvis det ikke er det skal den trække antallet fra det disponible antal og afslutte bestillingen, ellers skal den stoppe det hele og melde fejl.
Avatar billede fennec Nybegynder
23. november 2005 - 13:05 #9
Som jeg kan se det, burde den også gøre det med response.end (post 11:58:21)

Du tjekker først alle varelinjer (det script du har vist), bagefter resetter du så antallet af vare (scriptet efter det viste).
Avatar billede Slettet bruger
23. november 2005 - 13:13 #10
Kan man ikke ud fra loop sætningen danne en fejlkode man kan samle op via en variabel og så manuelt stoppe scriptet?

Den kører nemlig bare videre ned gennem scriptet og kommer men en formatcurrency fejl der er ikke er der?
Avatar billede Slettet bruger
23. november 2005 - 13:16 #11
sådan mener du?

IF Cint(VarDispFor) < Cint(VarDispAnt) Then
response.end
end if
Avatar billede Slettet bruger
23. november 2005 - 13:46 #12
ahhh f.... du har ret..det er fordi jeg tester med de forkerte brugere...smid et svar :-)
Avatar billede fennec Nybegynder
23. november 2005 - 14:55 #13
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester