---
title: "Ifsats och en tom array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/137519-ifsats-och-en-tom-array"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "MickeA.com"
published: "2005-11-13T15:56:50.000Z"
updated: "2005-11-14T15:47:37.000Z"
replies: 3
views: 235
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/137519-ifsats-och-en-tom-array"
---

# Ifsats och en tom array

## #1 — MickeA.com, 2005-11-13T15:56Z

Tjena
Plockar ut data från en databas med getRows och sparar detta i en array.
Får dock ett felmeddelande när array'en är tom, även fast jag försöker undvika detta med 

```
If isArray()...
```

Såhär har jag gjort:

```
<%
	sSql	=	"SELECT iId, pId, iItem, iCost " &_
			"FROM tbl_item " &_
			"WHERE pId = " & pId & " " &_
			"ORDER BY initDate ASC"

	Set oConn = Server.CreateObject("ADODB.Connection")
	oConn.Open dbConn
	Set rs = oConn.Execute(sSql)
	If Not rs.EOF Then myArr = rs.GetRows()
	rs.Close
	Set rs = Nothing
		If isArray(myArr) Then
			i = 0
			For i = 0 To UBound(myArr, 2)
				iId		= myArr(0, i)
				pId		= myArr(1, i)
				[b]iItem	= myArr(2, i)[/b]
				iCost	= myArr(3, i)

				Response.Write(	"<tr>" & VbCrLf &_
						"<td class=""longTxt"">" & iItem & "</td>" & VbCrLf &_
						"<td class=""shortTxt"">" & iCost & "</td>" & VbCrLf &_
						"<td class=""shortTxt""></td>" & VbCrLf &_
						"<td class=""shortTxt"">Påbörja</td>" & VbCrLf &_
						"</tr>" & VbCrLf)
			Next
		Else
			' Inget finns god damn it...
		End If
	closeDB()
%>
```

På den felstilta raden får jag ett felmess (inkompatibla typer) när inga träffar finns, alltså när villkoren i frågan inte uppfylls.
Bör inte Else-satsen uppfyllas när det inte finns något i databasen? Om något hittas, funkar det klockrent, annars inte.

Vad kan vara fel?
Tack!

Permalänk: https://www.webforum.nu/p/137519

## #2 — J.N., 2005-11-14T14:14Z

HEJ!

Ingen direkt lösning på felet, men ta bort if-satsen If isArray(myArr) Then och låt If Not rs.EOF Then myArr = rs.GetRows() vara den if-sats som avgör om du ska köra genom din kod.

En GetRows-array är ju ingen riktigt riktig array, jag vet inte om det beror på det? När jag använt GetRows har det i alla fall fungerat med IsArray, vad jag kan minnas.

1066 inlägg, slaget vid Hastings!

Permalänk: https://www.webforum.nu/p/1707032

## #3 — MickeA.com, 2005-11-14T15:42Z

Tjena!
Tack för svaret, men är lite kluven iaf.
Har använt Palle's pagingscript som finns under filerna och där används både *If not rs.EOF* samt *If isArray()* så jag gjorde likadant. Skillnaden är att när det inte finns något i Db'n så körs inte det som ligger under *isArray*, utan elsesatsen tar vid.

Kan det ha med att göra att det är MySQL den här gången? Har nämligen bara kört liknande kod mot Access vid tidigare tillfällen.

Fler idéer?

Permalänk: https://www.webforum.nu/p/1707075

## #4 — MickeA.com, 2005-11-14T15:47Z

Nu provade jag lite saker och löste problemet.
Bytte ut:

```
If Not rs.EOF Then myArr = rs.GetRows()
```

 till 

```
If Not rs.EOF Then myArr = rs.GetRows() Else myArr = "" End If
```

Det gör ju att Elsesatsen körs när 

```
 If isArray(myArr)
```

 och då fungerar det.

Tack för tipsen!

Permalänk: https://www.webforum.nu/p/1707078

---

Tråden på webben: https://www.webforum.nu/amne/asp/137519-ifsats-och-en-tom-array
