Toon posts:

[ASP] select case met DB result

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een script geschreven die resultaten uit een database ophoest en in een tabel zet. Hij telt ook het aantal overeenkomstige resultaten.

Eén van de resultaten "fout1" wil ik in een select case gebruiken. Een bepaalde getalwaarde uit de database moet dan zorgen dat er een text gegenereerd word.

Het lukt me echter niet. Ik heb al diverse constructies geprobeerd, maar die "fout1" waarde lijkt niet aanroepbaar.

Iemand enig idee hoe dit moet?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<%

    Response.Buffer = True

        
%>
<!--#INCLUDE file="ConnectionDECG.asp"-->
<%

    AantalFout = 0
    
        
    SQL1= "SELECT fout1, goed1, COUNT(*) AS Total FROM stroken GROUP BY fout1 "

    SET rsData = Data.Execute(SQL1)

    if not (rsData.BOF and rsData.EOF) then
    AantalFout = rsData.Fields("Total").Value
    end if
    
        select case HRS
            case fout1
            Case 0 HRStext = "VES R-onT"
            Case 1 HRStext = "VES type 1"
        end select

    
%>
<HTML>
<HEAD>
<TITLE>Zoekresultaten</TITLE>
</HEAD> 
<BODY>
<table width="600" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="246"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Fout:</strong></font></td>
    <td width="185"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Moet zijn:</strong></font></td>
    <td width="169"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Aantal 
      keer:</strong></font></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
  <% DO WHILE NOT RsData.EOF %>


  <table width="600" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="252">
      <% response.write(RsData("fout1")) %><%=HRStext %>
    </td>
    <td width="183">
      <% response.write(RsData("goed1")) %>
    </td>
    <td width="165">
      <% response.write(RsData ("Total")) %>
     </td>
  </tr>
</table>
  <% RsData.MOVENEXT %>
  <% LOOP %>
  <% RsData.close
       set rsData = nothing %>
</BODY>
</HTML>

Verwijderd

code:
1
2
3
4
5
        select case HRS
               case rsData.Fields("fout1").Value
            Case 0 HRStext = "VES R-onT"
            Case 1 HRStext = "VES type 1"
        end select

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Daarnaast neem ik aan dat je dit voor elk record wil controleren. In dat geval kun je 'm beter in de lus opnemen.

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


Verwijderd

Topicstarter
Ik heb hem inderdaad in de lus opgenomen nu. Maar het lijkt alsof 'ie toch geen waarde meekrijgt van "fout1". Hij genereert namelijk alleen text die bij waarde "0" hoort.

Dus bij

Case 0 HRStext = "VES R-onT"

geeft 'ie bij elke waarde deze tekst. Als ik hier

Case 2 HRStext = "VES R-onT" van maak zie ik niets :(

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Controleer de waarde van je variabele 'HRS' eens ;)
(Ik zie overigens ook nergens waar je een waarde aan deze variabele toewijst. :?)

[ Voor 8% gewijzigd door DeverauX op 20-01-2004 15:39 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Ik weet het niet hoor.. volgens mij heeft het met iets anders te maken. Ik heb even een testje gedaan:

code:
1
2
3
4
5
6
7
8
9
10
11
Dim HRS

HRS = rsData.Fields("fout1").Value



blah blah

en dan in het  HTML deel:

<%= HRS %>


De uitkomst blijft continu 0.

8)7

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 17-11-2025

robjanssen

Software Developer

Moet je select case niet zo zijn:

ASP:
1
2
3
4
5
6
Select Case CLng(rsData.Fields("fout1").Value)
  Case 0
    HRStext = "VES R-onT"
  Case 1
    HRStext = "VES type 1"
End Select

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Volgens mij gaat dit sowieso niet werken, er zit een fout in je SQL Query.

Je GROUP BY doe je alleen over fout1 terwijl je geen aggregate funtie op goed1 doet. Je hebt toch niet stiekum ergens ON ERROR RESUME NEXT staan???

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Het werkt! :)

De suggestie van robjanssen did the trick.

Bedankt voor de hulp, draad mag van mij op slot :)
Pagina: 1