|  | 		    
					
        
         
          
         
	
          | |  | Funktion retunerer intet (Expert) Fra : Søren
 | 
 Dato :  27-03-03 16:47
 | 
 |  | 
 
            Dette problem har de sidste dage betragteligt forøget mængden af
 grå hår i min hovedbund. 
 Jeg ønsker med funktionen [erFerie] at undersøge om en dags dato
 ligger imellem to datoer, FRADATO og TILDATO, registreret i en
 SQL tabel.
 Det fungerer således:
 Med en løkke gennemløbes SQL tabellen, og så snart dags dato
 ligger imellem én af feriedagene, er det hensigten at funktionen
 skal retunere TRUE, og ellers skal den retunere FALSE. Men det
 gør den bare ikke. Den rutunerer slet ingen ting.
 Ved Response.Write på THEN og ELSE sekvenserne kan jeg se at
 selve If-udtrykket fungerer korrekt. Jeg får de rigtige data fra
 SQL-tabellen, og der udskrives et ”JA” når dags dato ligger
 imellem en ferieperiode og et ”NEJ” for hver gang dags dato ikke
 ligger i en ferie. Men funktionen retunerer altså ingen ting. 
 En Response.Write erFerie() giver intet resultat. Hvad i alverden
 kan jeg have gjort forkert????
 <%
 Function erFerie()
 ' Variabler erklæres
 Dim strSQLfer
 Dim ferie
 Dim ferieStart  'ASP dato-objekt med dato fra ferie-tabellen
 Dim ferieSlut   'ASP dato-objekt med dato fra ferie-tabellen
 Dim dagsDato
 dagsDato = Date
 ' SQL forespørgsel
 strSQLfer = "Select * from ferie"
 ' Udfører forespørgsel
 Set ferie = objCN.Execute(strSQLfer)
 ' Finder den første record i tebellen Ferie
 ' De konverteres fra tekst-strenge til ASP-datoer. Dette fungerer
 fint, ingen problemer her
 ferieStart = CDate( Trim(ferie("FRADATO")) )
 ferieSlut  = CDate( Trim(ferie("TILDATO")) )
 ' Her starter mit problem 
 Do Until ferie.EOF
 if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then
      erFerie = TRUE    
      Exit Do
 Else
      erFerie = FALSE 
 End If
 
 ferie.MoveNext
 ferieStart = CDate( Trim(ferie("FRADATO")) )
 ferieSlut  = CDate( Trim(ferie("TILDATO")) )
 Loop
 set ferie = Nothing
 End Function
 %>
 Det er så hensigten at Response.Write erFerie(), skal resultere i
 TRUE eller FALSE, men det gør den ikke. Hvordan kan det være?????
 Mange forhåbningsfulde hilsner 
 Søren
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
  Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 17:17
 | 
 |  | Jeg er ikke særligt vandt i asp, er mere til php.
 Men så vidt jeg kan se har du ikke nogen return, jeg ved så ikke om asp ser
 det du skriver
 > if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then
 >     erFerie = TRUE
 >     Exit Do
 >Else
 >     erFerie = FALSE
 >End If
 "erFerie = TRUE", er det det samme som at få funktionen til at retunere?
 Som jeg kan se, har du intet sted erklæret erFerie. Er erFerie en global
 variable, eller noget?
 
 Hvis ikke det du gør "erFerie = TRUE" får funktionen til at returnere TRUE,
 så skal du nok lave en reTurn i slutningen af funktionen.
 
 // Claw
 
 
 
 
 |  |  | 
  Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 17:33
 | 
 |  | 
 
            > Jeg er ikke særligt vandt i asp, er mere til php. 
 > Men så vidt jeg kan se har du ikke nogen return, jeg ved så ikke om asp ser 
 > det du skriver 
 > > if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then 
 > >     erFerie = TRUE 
 > >     Exit Do 
 > >Else 
 > >     erFerie = FALSE 
 > >End If 
 > "erFerie = TRUE", er det det samme som at få funktionen til at retunere? 
 > Som jeg kan se, har du intet sted erklæret erFerie. Er erFerie en global 
 > variable, eller noget? 
 >  
 Det kan være noget om det du skriver, og så aligevel ikke. Fordi når
 resultatet er TRUE retunerer funktionen fint, men ikke hvis den bliver false.
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
   Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 17:49
 | 
 |  | Når du sætter erFerie = TRUE, er det så det samme som at returne?
 Altså at den returner og exitter ud af funktionen?
 
 Kan man ikke lave en return, ligesom i php?
 
 if(dagsDato >= ferieStart && dagsDato <= ferieSlut){
 return TRUE;
 }
 
 p.s. Hey er du fra HTML.dk??
 
 
 
 
 |  |  | 
    Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 17:56
 | 
 |  | 
 
            > Kan man ikke lave en return, ligesom i php? 
 >  
 > if(dagsDato >= ferieStart && dagsDato <= ferieSlut){ 
 >     return TRUE; 
 > } 
 >  
 Det er jeg faktisk ikke helt klar over. Men (function = 1) svarer
 til hvad der i PHP skrives (Return = 1). Men når man skriver
 function = 1, exitter den ikke. 
 Men den får som sagt værdien TRUE, når dags dato ligger i
 ferie-tabellen, men den får ingen værdi, når den gerne skulle
 retunere FALSE
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
     Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 18:02
 | 
 |  | > Det er jeg faktisk ikke helt klar over. Men (function = 1) svarer
 > til hvad der i PHP skrives (Return = 1). Men når man skriver
 > function = 1, exitter den ikke.
 >
 > Men den får som sagt værdien TRUE, når dags dato ligger i
 > ferie-tabellen, men den får ingen værdi, når den gerne skulle
 > retunere FALSE
 
 Og hvis du laver en Response.Write mellem Else og End If, så bliver det
 skrevet?
 
 
 
 
 |  |  | 
      Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 18:07
 | 
 |  | 
 
            > Og hvis du laver en Response.Write mellem Else og End If, så bliver det 
 > skrevet? 
 Jeg forstår ikke helt dit sprøgsmål, men her er som jeg forstår dig:
 Hvis jeg indsætter en Response.Write...
 if ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then 
 erFerie = TRUE 
     Response.Write "Dags dato er ferie"              'Denne bliver skrevet
 ud fint
 Exit Do 
 Else 
 erFerie = FALSE 
        Response.Write "Dags dato er IKKE ferie"  ' Denne skrives også fint
 ud
 End If 
 Funktionen retunerer fint, hvis bare resultatet er TRUE. Hvis det er false
 retuneres intet. 
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
       Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 18:11
 | 
 |  | 
 
            > Jeg forstår ikke helt dit sprøgsmål, men her er som jeg forstår dig:
 > Hvis jeg indsætter en Response.Write...
 >
 > if ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then
 > erFerie = TRUE
 >     Response.Write "Dags dato er ferie"              'Denne bliver skrevet
 > ud fint
 > Exit Do
 > Else
 > erFerie = FALSE
 >        Response.Write "Dags dato er IKKE ferie"  ' Denne skrives også fint
 > ud
 > End If
 >
 >
 > Funktionen retunerer fint, hvis bare resultatet er TRUE. Hvis det er false
 > retuneres intet.
 Det var også det jeg mente med det jeg skrev!    Kan det være noget med ASP at gører? Har du prøvet at lave en tom funktion
 der bare returner FALSE og se om det er det samme problem?
 Function returnFalse()
     returnFalse = FALSE
 End Function
            
             |  |  | 
        Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 18:20
 | 
 |  | 
 
            > Kan det være noget med ASP at gører? Har du prøvet at lave en tom funktion 
 > der bare returner FALSE og se om det er det samme problem? 
 >  
 > Function returnFalse() 
 >     returnFalse = FALSE 
 > End Function 
 >  
 > 
 Det var en god idé!
 Jeg har afprøvet denne funktion der fungerer efter samme princip, den fungerer
 efter hensigten.
 <%
 Function test(x)
 If x mod 2 = 0 Then
   test = TRUE
 Else
   test = FALSE
 End If
 End Function
 For i = 0 to 5
 Response.Write test(i)
 Next
 %>
 Jeg har ingen idé om hvorfor erFerie ikke fungerer korrekt!!
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
         Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 18:37
 | 
 |  | 
 
            > Det var en god idé!
 >
 > Jeg har afprøvet denne funktion der fungerer efter samme princip, den
 fungerer
 > efter hensigten.
 >
 >
 > <%
 >
 > Function test(x)
 >
 > If x mod 2 = 0 Then
 >   test = TRUE
 > Else
 >   test = FALSE
 > End If
 >
 > End Function
 >
 > For i = 0 to 5
 > Response.Write test(i)
 > Next
 > %>
 >
 >
 > Jeg har ingen idé om hvorfor erFerie ikke fungerer korrekt!!
 Nu er det bare gætterier!    Men det du tester den med, det lægger ikke i starten af tabellen vel?
 Hvad sker der hvis man sætter erFerie til noget flere gange?
 Det jeg mener er, at hvis det nu er at man i asp ikke kan sætte erFerie =
 FALSE flere gange, at det laver noget fuck, så hvis det du søger efter i
 tabellen allerede er i starten, så bliver den jo kun en gang sat til true,
 erFerie = TRUE, og så Exitter den DO, så hvis det er at det laver fuck at
 sige erFerie = FALSE flere gange, så kan det jo være derfor?
 Er det tilfældet?
            
             |  |  | 
          Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 18:45
 | 
 |  | 
 
            > Nu er det bare gætterier!    > Men det du tester den med, det lægger ikke i starten af tabellen vel? 
 > Hvad sker der hvis man sætter erFerie til noget flere gange? 
 > Det jeg mener er, at hvis det nu er at man i asp ikke kan sætte erFerie = 
 > FALSE flere gange, at det laver noget fuck, så hvis det du søger efter i 
 > tabellen allerede er i starten, så bliver den jo kun en gang sat til true, 
 > erFerie = TRUE, og så Exitter den DO, så hvis det er at det laver fuck at 
 > sige erFerie = FALSE flere gange, så kan det jo være derfor? 
 > Er det tilfældet? 
 Gætterrier, er skam fint, jeg har ikke lavet andet de sidste par dage.
 Ja, det har jeg prøvet, ferie-tabellen indeholder 6-8 rækker. Den er ikke
 afhængig af hvornår en TRUE eller FALSE optræder. 
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
           Michael (27-03-2003) 
 
	
          | |  | Kommentar Fra : Michael
 | 
 Dato :  27-03-03 18:51
 | 
 |  | 
 
            > Gætterrier, er skam fint, jeg har ikke lavet andet de sidste par dage.
 >
 > Ja, det har jeg prøvet, ferie-tabellen indeholder 6-8 rækker. Den er ikke
 > afhængig af hvornår en TRUE eller FALSE optræder.
   Ja det er det nemli! Dem laver jeg også når jeg sidder i skolen og burde
 følge med i timerne! Men altså, meget sjovere at scripte! :P
 Nåh.
 Hmm, jeg fatter det sku hellere ikke helt!
 Hvordan tester du så funktionen? Det er ikke sådan at der kan være fejl i
 det script som tester den,?
            
             |  |  | 
            Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 19:13
 | 
 |  | 
 
            > > Ja, det har jeg prøvet, ferie-tabellen indeholder 6-8 rækker. Den er ikke 
 > > afhængig af hvornår en TRUE eller FALSE optræder. 
 >    Ja det er det nemli! Dem laver jeg også når jeg sidder i skolen og burde
 > følge med i timerne! Men altså, meget sjovere at scripte! :P 
 > Nåh. 
 >  
 > Hmm, jeg fatter det sku hellere ikke helt! 
 >  
 > Hvordan tester du så funktionen? Det er ikke sådan at der kan være fejl i 
 > det script som tester den,? 
 Hej Michael
 Jeg har fået løst problemet. Jeg takker for din hjælp, det er fedt du gad
 hjælpe. Tak for hjælpen. Jeg håber vi kan snakkes ved en anden gang.
 Venlig hilsen
 Søren
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
   Jonas Schmeltz Aaber~ (29-03-2003) 
 
	
          | |  | Kommentar Fra : Jonas Schmeltz Aaber~
 | 
 Dato :  29-03-03 22:47
 | 
 |  | 
 > Det kan være noget om det du skriver, og så aligevel ikke. Fordi når 
 > resultatet er TRUE retunerer funktionen fint, men ikke hvis den bliver false. 
 Kan du så ikke få den til at returnere noget andet, og få en anden funktion til
 at checke det?!
 Eks.
 Function minFunktion()
   If [A] Then
     minFunktion = "sand"
   ElseIf [B] Then
     minFunktion = "falsk"
   End If
 End Function
 ...
 Function checkEnAnden()
   denAnden = minFunktion()
   If denAnden = "sand" Then
     checkEnAnden = TRUE
   ElseIf denAnden = "falsk" Then
     checkEnAnden = FALSE
   Else
     checkEnAnden = 0
   End If
 End Function
 Response.Write checkEnAnden()
 Jonas
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
  Tom Jensen (27-03-2003) 
 
	
          | |  | Kommentar Fra : Tom Jensen
 | 
 Dato :  27-03-03 19:55
 | 
 |  | 
 
            "Søren"
 > ' Her starter mit problem
 >
 > Do Until ferie.EOF
 >
 > if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then
 >      erFerie = TRUE
 >      Exit Do
 > Else
 >      erFerie = FALSE
 > End If
 >
 >
 > ferie.MoveNext
 > ferieStart = CDate( Trim(ferie("FRADATO")) )
 > ferieSlut  = CDate( Trim(ferie("TILDATO")) )
 >
 > Loop
 Du har ikke skrevet en funktion. Du går ind i et loop og tester og så
 sætter du en variabel sand eller falsk afhængig af om betingelsen er
 opfyldt. Du vil altid gå ud med den sidste tilstand variablen havde da
 du altid vil køre hele løkken igennem.
 Du kan starte med at sætte variablen til false og så fjerne else delen
 erFerie = FALSE
 Do Until ferie.EOF
     ferieStart = CDate( Trim(ferie("FRADATO")) )
     ferieSlut  = CDate( Trim(ferie("TILDATO")) )
     if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then
         erFerie = TRUE
      End If
     ferie.MoveNext
 Loop
 På den måde vil du få sat variablen til sand hvis den bare bliver sand
 en gang i gennemløbet.
 --
 Med venlig hilsen
 Tom Jensen
 FF Soft
www.ffsoft.dk Hent en gratis web shop
            
             |  |  | 
  Søren (27-03-2003) 
 
	
          | |  | Kommentar Fra : Søren
 | 
 Dato :  27-03-03 19:07
 | 
 |  | 
 
            > Du har ikke skrevet en funktion. Du går ind i et loop og tester og så 
 > sætter du en variabel sand eller falsk afhængig af om betingelsen er 
 > opfyldt. Du vil altid gå ud med den sidste tilstand variablen havde da 
 > du altid vil køre hele løkken igennem. 
 > Du kan starte med at sætte variablen til false og så fjerne else delen 
 >  
 > erFerie = FALSE 
 > Do Until ferie.EOF 
 >     ferieStart = CDate( Trim(ferie("FRADATO")) ) 
 >     ferieSlut  = CDate( Trim(ferie("TILDATO")) ) 
 >     if  ( (dagsDato >= ferieStart) AND (dagsDato <= ferieSlut) ) Then 
 >         erFerie = TRUE 
 >      End If 
 >     ferie.MoveNext 
 > Loop 
 >  
 > På den måde vil du få sat variablen til sand hvis den bare bliver sand 
 > en gang i gennemløbet. 
 >  
 Stod du ved siden af mig nu, havde jeg kysset dig!! Jeg takker ærbødigt! 
 Tak for hjælpen Tom!!!
 
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
 |  |