webForumDet fria alternativet

Fylla 2-dimensionell array

9 svar · 330 visningar · startad av solbulle

solbulleMedlem sedan mars 20014 998 inlägg
#1

Hm... jag gör en massa inserts i db med hjälp av en sub och plockar ut ID med "SELECT @@IDENTITY", detta ID samt en annan variabel måste jag sen använda vidare.
Jag tänkte att jag skulle lägga dom i en 2-dimensionell array, men hur gör jag det?
(Tidigare la jag allt i en kommaseparerad sträng, är det det som gäller?)

Typ kod:

Sub in(firstname,lastname,bio,occupation)
strSQL =  ("INSERT INTO tbl_person (fld_p_firstname, fld_p_lastname, fld_p_bio) VALUES ('"&firstname&"','"&lastname&"','"&bio&"')")
connect.Execute strSQL,,128
set RS = connect.execute("SELECT @@IDENTITY")

intpID=RS(0)

'ocupation ska ju då vara med i arrayen...

End Sub
@ndersMedlem sedan juni 200026 914 inlägg
#2

Varför ska du ha en tvådimensionell array? Räcker det inte med en vanlig array med två fält?

myArray = Array(detena, detandra)

Mvh

solbulleMedlem sedan mars 20014 998 inlägg
#3

Vet inte riktigt om det är jag som snubblar lite eller om du missuppfattar mig.
Jag vill köra min lilla sub några gånger (ca 1-10ggr, olika värden) och på något sätt hålla ordning på vad den har lagt in i databasen så att jag sen kan peta in det i en annan tabell.
Min tanke var alltså att en Arraay skulle "byggas" upp, och varje plats i den skulle motsvara värdet i occupation samt vilket intpID den fick.

Cyklar jag nu igen?

@ndersMedlem sedan juni 200026 914 inlägg
#4

solbulle skrev:

Vet inte riktigt om det är jag som snubblar lite eller om du missuppfattar mig.

Kanske lite både och? :)

Först och främst:

Dim myArray(1,0)

Sedan, i din sub, när du ska fylla på med värden, prova med något sånt härnt:

intUpperBound = Ubound(myArray,2) + 1
redim preserve myArray(1, intUpperBound)
myArray (0, intUpperBound) = "nånting"
myArray (1, intUpperBound) = "nåt annat"

När du sedan loopar ut din array igen, så kom ihåg att det ligger en tom rad nederst. (Om du inte flyttar på värdena vill säga. :) )

Mvh

solbulleMedlem sedan mars 20014 998 inlägg
#5

Jag testar :)
Jag har strulat runt som attans med det jag håller på med, vad som är bästa lösningen, det vette gudarna...

solbulleMedlem sedan mars 20014 998 inlägg
#6

Microsoft VBScript runtime (0x800A000A)
This array is fixed or temporarily locked

:( Fixar inte att Redimma...

@ndersMedlem sedan juni 200026 914 inlägg
#7

Hur ser din kod ut nu?

solbulleMedlem sedan mars 20014 998 inlägg
#8

Asch!

ReDim myArray(1,0)

Löste det ju. Om jag gör den "dynamisk från start verkar det fungera.

@ndersMedlem sedan juni 200026 914 inlägg
#9

Ah!

My bad!

solbulleMedlem sedan mars 20014 998 inlägg
#10

"No hard feelings" ;)

Btw, nu skriver jag så här:

ReDim myArray(1,0) 'utanför subben

'detta i subben
redim preserve myArray(1,intUpperBound)
myArray(0,intUpperBound) = occupation
myArray(1,intUpperBound) = intpID
intUpperBound = Ubound(myArray,2) + 1

'testutskrift utanför subben:
For b = 0 to Ubound(myArray,2)
	response.write myArray(0,b) & " - - - " &  myArray(1,b) & "<br>"
Next

Verkar fungera helt strålande.

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb