[ASP3.0/VBScript] Gebruik custom classes *

Pagina: 1
Acties:

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
ik heb de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Class Title
 Public Title_ID

 Public Property Get Title
   SQL = "SELECT [Title] FROM [Titles] WHERE [Title_ID] = "_
   & Title_ID & ";"
   Set rstSimple = cnnSimple.Execute(SQL)
   Title = rstSimple("Title").Value
   rstSimple.close
   Set rstSimple = nothing
 End Property

 Public Property Get Genre
   SQL = "SELECT [Genre] FROM [Titles] WHERE [Title_ID] = "_
   & Title_ID & ";"
   Set rstSimple = cnnSimple.Execute(SQL)
   Genre = rstSimple("Genre").Value
   rstSimple.close
   Set rstSimple = nothing
 End Property
End Class


Kan ik dat opvragen van die waardes ook in een sub / function doen? (voor als ik nog meer variabelen uit de DB wil halen, telkens zo`n recordset openen lijkt me niet goed)

Ik ben vandaag trouwens met classes begonnen, dus ik heb er nog geen kaas van gegeten, dus plaats aub iets wat simpel is. Ik ben ook nog van plan er functies in te gaan zetten, maar dat komt later wel.

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 10:34
ik gebruik zelf verder nooit Classes binnen asp maar zou je niet kunnen proberen alle records binnen 1 SQL statement te plaatsen.

dus:
code:
1
2
SQL = "SELECT [Genre],[Title] FROM [Titles] WHERE [Title_ID] = "_
   & Title_ID & ";"


en vervolgens binnen de class een case te maken (oid) op basis van de informatie die je wil hebben?

overigens ligt dit wel aan de rest van je technisch ontwerp. als blijkt dat je door je huidige klasse opbouw veel aanroepen naar de database krijgt dan is een redesign wellicht funtioneel.

Maargoed, misschien wat informatie?

ps. je zou trouwens ook de gehele recordset ineens kunnen openen en alle variabelen in een array zetten en vervolgens uitvragen. wellicht lichter dan inderdaad voor elke variabele de recordset opnieuw openen!

Everyday's an endless stream, of cigarettes and magazines...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:42

gorgi_19

Kruimeltjes zijn weer op :9

Voor het gebruik van classes in VBScript, kijk eens naar http://www.asp101.com/resources/jonmgohr/081899/class.asp

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
hee, dit is een verdraaid goeie tip. die ben ik nog niet tegengekomen. met de Class_Initialize() zou ik dus eerst de properties kunnen maken en dan toewijzen.

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
ik heb nu het volgende, maar ik krijg een foutmelding van een ongeldige toewijzing op regel 16
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
Class TestMe
    Private Sub Class_Initialize()
    
    end Sub
    Private Sub Class_Terminate()
    
    end Sub
    Public Datum
    Public Property Get WKnr
        WKnr = 0
    End Property
    Function GetWknr()
        SQL = "SELECT [WKnr] FROM [Time] WHERE [Datum] = '" & Datum & "';"
        Set rstSimple = cnnSimple.Execute(SQL)
        if not rstSimple.EoF then WKnr = Cint(rstSimple("WKnr").Value)
        rstSimple.Close
        Set rstSimple = Nothing
    End Function
end Class
%>

wat doe ik fout?

-als ik die functie NIET aanroep, dan gaat het goed, maar op deze manier gaat het dus fout- (ik heb alleen geen flauw idee waarom)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Je wilt in de functie GetWKnr WKnr = pingping vervangen door GetWKnr = pingping

De waarde die je terug wilt geven moet je toekennen aan de naam van de property/functie.

[ Voor 7% gewijzigd door Gert op 21-01-2004 18:12 ]


  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
Volgens mij snap ik hem (een beetje) maar het lukt me nu wel :) thanks all
Pagina: 1