Avatar billede demojoe Nybegynder
29. maj 2001 - 22:40 Der er 5 kommentarer og
1 løsning

Funktion der returner en array

Hejsa
jeg vil lave en funktion der returner et recordset som en fler-dimentionel array. Er der nogen der kan hjælpe?
Her er min kode som den ser ud ind til videre:

Function rs(byRef strSQL)
    Dim objConn
    Set objConn = server.createobject(\"ADODB.connection\")
    objConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & conDatabasePath
   
    Dim rsStandard
    set rsStandard = Server.CreateObject(\"ADODB.Recordset\")
    rsStandard.open strSQL ,objConn
    if Not rsStandard.EOF Then
        Set rs = rsStandard.GetRows
    End If
    rsStandard.Close
    Set rsStandard = Nothing
    objConn.Close
    Set objConn = Nothing
End Function

/Demojoe
Avatar billede mwittrock Nybegynder
29. maj 2001 - 23:06 #1
rs = rsStandard.GetRows

burde gøre det, ikke

Set rs = rsStandard.GetRows
Avatar billede demojoe Nybegynder
29. maj 2001 - 23:13 #2
Det troede jeg også, men jeg kan ikke bruge Ubound eller andet på \"rs\"...
Det er sådan set det der er problemet.
Avatar billede mwittrock Nybegynder
29. maj 2001 - 23:26 #3
Prøv at vise den kode, der ikke fungerer.
Avatar billede jper Nybegynder
29. maj 2001 - 23:36 #4
du skal bare bruge en variant datatype så får du et mulitidimentionalt array så din funktionserklæring skal se sådanne ud:

Function rs(byRef strSQL, RetVal as Variant)
    Dim objConn
    Set objConn = server.createobject(\"ADODB.connection\")
    objConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & conDatabasePath
   
    Dim rsStandard
    set rsStandard = Server.CreateObject(\"ADODB.Recordset\")
    rsStandard.open strSQL ,objConn
    if Not rsStandard.EOF Then
        RetVal = rsStandard.GetRows
    End If
    rsStandard.Close
    Set rsStandard = Nothing
    objConn.Close
    Set objConn = Nothing
End Function

når du kalder kan du bruge RetVal som returværdi fordi den er ByRef sådanne

sub EnEllerAnden()
dim MitArray as Variant
rs \"select * from tabel\", MitArray

for i = 0 to ubound(mitarray,2)

next

end sub
Avatar billede mwittrock Nybegynder
30. maj 2001 - 00:04 #5
-> jper: \"Dim variabel As datatype\" er gyldig VB syntax, ikke gyldig VBScript syntax

-> demojoe: Du bør iøvrigt overføre din SQL sætning ByVal og ikke ByRef, når du ikke har brug for at ændre den originale streng inde i din funktion.
Avatar billede demojoe Nybegynder
30. maj 2001 - 13:39 #6
efter at have fucket lidt rundt med jpers svar, lykkedes det mig at få det til at virke.

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

IT-JOB