webForumDet fria alternativet

Arrayproblem...

7 svar · 165 visningar · startad av LilleSkutt

LilleSkuttMedlem sedan feb. 2001264 inlägg
#1

Hallå!

Jag har problem med en funktion som ska returnera en tvådimensionell array om den har skapats, annars ska den returnera falskt.

Koden jag försökte med är:

Function id (ByVal usr)
    Dim rows
    rows = Data.getRows ("SELECT id FROM anvandare WHERE namn = '" & usr & "'")

    If rows = False Then
        id = False
    Else
        id = rows(lBound(rows, 2), lBound(rows, 1))
    End If
End Function

Funktionen getRows returnerar en tvådimensionell array, hämtat med getRows, om den fanns, annars falskt. Nu vill jag kolla om rows är falskt eller har värden, och returnera olika beroende på det.

Hur ska jag göra?

------------------
---
/* LilleSkutt */

PatrikBMedlem sedan mars 20002 713 inlägg
#2

Så här kanske:

strSQL = "SELECT id FROM anvandare WHERE namn = '" & usr & "'"
Set objRS = Data.Execute(strSQL)
If objRS.EOF Then
id = False
Else
id = objRS("id")
End If

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

LilleSkuttMedlem sedan feb. 2001264 inlägg
#3

Njäe, då skapar jag juh ett nytt recordset o returnerar det... Jag vill använda mig av GetRows(). Men det var ju inte det frågan handlade om heller, iofs :)

Hur kontrollerar man om en array finns, eller om variabeln är satt till False?

Min kod över funkar inte...

------------------
---
/* LilleSkutt */

icaaqMedlem sedan okt. 20004 910 inlägg
#4
If Ubound(rows) < 0 Then
'det finns inga rader
Else
'det finns rader
End If

typ :OO

------------------
attans

[Redigerat av icaaq den 18 sep 2001]

emissionMedlem sedan dec. 19996 095 inlägg
#5

Har du gjort en egen GetRows-metod? I annat fall bör du nog kolla upp hur man använder GetRows.

Function id (usr)
Dim rows,objRS
set objRS = Connection.Execute("SELECT id FROM anvandare WHERE namn = '" & usr & "'")
if not objRS.EOF then
id=objRS.GetRows
else
id=false
End If
End Function

------------------
/emission
If you see someone without a smiley, give them your colon.

LilleSkuttMedlem sedan feb. 2001264 inlägg
#6

Alltså, jag vet hur man använder GetRows! Funktionen heter likadant, och i den hämtar jag data från en databas med den GetRows()-metod du visar. Sedan retunerar jag arrayen om det fanns någon data i arrayen, annars falskt.

I funktionen som jag bifogade i mitt första inlägg vill jag hämta användar-id:et och använder då min funktion för att hämta en array... Om det fanns någon användarnamn skickas arrayen tillbaka, annars skickas False tebax.

Grejen är den att man inte kan jämföra en array mot false, inte heller en boolean mot en array!

------------------
---
/* LilleSkutt */

emissionMedlem sedan dec. 19996 095 inlägg
#7

Okej..

if not isArray(rows) then...

LilleSkuttMedlem sedan feb. 2001264 inlägg
#8

Ok, jag struntade i att använda False... Om det inte fanns någon data så returnerar mina funktioner null istället. Funkar toppen...

Tack för er tid, ändå!

------------------
---
/* LilleSkutt */

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)