[VBScript/SQL] time-out script fout 'ASP 0113'

Pagina: 1
Acties:

  • huistra
  • Registratie: April 2001
  • Laatst online: 08-05-2024
gebruik volgende code:
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
<%
    'consumptie id ophalen
    cid = REPLACE(TRIM(Request("cid")), "'", "''")
    'Open de recordset consumptie
    set RS = Server.CreateObject("ADODB.Recordset")
        RS.ActiveConnection = Con
        RS.CursorType = 3
        RS.Locktype = 3
        RS.Open = "SELECT * FROM Consumpties WHERE cid = "&cid 
        IF NOT RS.EOF THEN
          naam           = RS("naam")
          knoptekst     = RS("knoptekst")
          bontekst       = RS("knoptekst")
          catid         = RS("catid")
          verkoopprijs     = RS("verkoopprijs")
          verkoopprijsk1     = RS("verkoopprijsk1")
          verkoopprijsk2     = RS("verkoopprijsk2")
          verkoopprijsk3     = RS("verkoopprijsk3")
          btw           = RS("btw")
          plu           = RS("plu")
          boekhoudcat       = RS("boekhoudcat")
          style         = RS("style")
        END IF
        RS.Close()
        dim hoeveeluitproduct(5)
        dim pid(5)
        dim pnaam(5)
        set RS2 = Server.CreateObject("ADODB.Recordset")
            RS2.ActiveConnection = Con
            RS2.CursorType = 3
            RS2.Locktype = 3
            RS2.Open = "SELECT * FROM Hoeveelheden WHERE cid = "&cid 
            IF NOT RS2.EOF THEN
              WHILE NOT RS2.EOF
                FOR z=0 TO 4
                    hoeveeluitproduct(z) = RS2("hoeveeluitproduct")
                    pid(z) = RS2("pid")
                set RS3 = Server.CreateObject("ADODB.Recordset")
                    RS3.ActiveConnection = Con
                    RS3.CursorType = 3
                    RS3.Locktype = 3
                    RS3.Open = "SELECT naam FROM Producten WHERE pid = "&pid(z) 
                    IF NOT RS3.EOF THEN
                      pnaam(z) = RS3("naam")
                    END IF
                   RS3.Close()
                z = z+1 
                NEXT
              WEND
              RS2.Close()
            END IF  
            
%>

De bedoeling is dat er diverse gegevens uit de tabel consumpties gehaald worden adhv de cid, vervolgens wordt er gelooped (4 maal) door de tabellen hoeveelheden en producten waarna er een array gevuld wordt. Of zou moeten, want ik krijg een time-out. :'(
Misschien dat iemand licht in de duisternis kan brengen? Oh ja, gebruik een access dbase

edit:
Misschien nog niet zo netjes gedaan, steeds RS3 sluiten en openen enzo, maar ik zag het ff niet anders, kan waarschijnlijk ook met joins enzo...., maar het gaat nu ff hierom.

  • huistra
  • Registratie: April 2001
  • Laatst online: 08-05-2024
het is al opgelost, for in while lukt natuurlijk niet..
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
<%
    'consumptie id ophalen
    cid = REPLACE(TRIM(Request("cid")), "'", "''")
    'Open de recordset consumptie
    set RS = Server.CreateObject("ADODB.Recordset")
        RS.ActiveConnection = Con
        RS.CursorType = 3
        RS.Locktype = 3
        RS.Open = "SELECT * FROM Consumpties WHERE cid = "&cid 
        IF NOT RS.EOF THEN
          naam           = RS("naam")
          knoptekst     = RS("knoptekst")
          bontekst       = RS("knoptekst")
          catid         = RS("catid")
          verkoopprijs     = RS("verkoopprijs")
          verkoopprijsk1     = RS("verkoopprijsk1")
          verkoopprijsk2     = RS("verkoopprijsk2")
          verkoopprijsk3     = RS("verkoopprijsk3")
          btw           = RS("btw")
          plu           = RS("plu")
          boekhoudcat       = RS("boekhoudcat")
          style         = RS("style")
        END IF
        RS.Close()
        dim hoeveeluitproduct(5)
        dim pid(5)
        dim pnaam(5)
        dim inhoudsmaat(5)
        set RS2 = Server.CreateObject("ADODB.Recordset")
            RS2.ActiveConnection = Con
            RS2.CursorType = 3
            RS2.Locktype = 3
            RS2.Open = "SELECT * FROM Hoeveelheden WHERE cid = "&cid 
            IF NOT RS2.EOF THEN
              WHILE NOT RS2.EOF AND z < 5
                    hoeveeluitproduct(z) = RS2("hoeveeluitproduct")
                    pid(z) = RS2("pid")
                set RS3 = Server.CreateObject("ADODB.Recordset")
                    RS3.ActiveConnection = Con
                    RS3.CursorType = 3
                    RS3.Locktype = 3
                    RS3.Open = "SELECT naam, inhoudsmaat FROM Producten WHERE pid = "&pid(z)    
                    IF NOT RS3.EOF THEN
                      pnaam(z) = RS3("naam")
                      inhoudsmaat(z) = RS3("inhoudsmaat")
                    END IF
                   RS3.Close()
            z = z+1 
            RS2.Movenext()
            WEND
              RS2.Close()
            END IF            
%>

Dit moest em zijn.., hij kan dus op slot