webForumDet fria alternativet

Arrayer och indexering

ASPur ASP

16 svar · 456 visningar · startad av Runken

Medlem sedan apr. 200336 inlägg
Frågan#1

Tjenare!

Vi ska hämta data från en databas och lägga in detta i ett formulär. Detta för att användaren ska kunna se och ändra sina kunduppgifter.
Vi hämtar datan från databasen med en SQL-sats:

strSQL = "SELECT (*) FROM customer WHERE anamn = '" & vanamn & "' AND losenord = '" & vlosen & "'"
'set objRS = Conn.Execute(strSQL)
'conn.Close

Om vi har strSQL som en array, kan man nå värdena i objRS med hjälp av indexering och i så fall hur ska det se ut?

//mvh

Medlem sedan nov. 20017 144 inlägg
#2

Runken skrev:

Om vi har strSQL som en array, kan man nå värdena i objRS med hjälp av indexering och i så fall hur ska det se ut?

Varför då?

Medlem sedan apr. 200336 inlägg
#3

För att vi vill fylla kunduppgiftsformuläret med de uppgifterna som vi hämta från databasen och då tänkte vi att man kan fylla tex textfältet förnamn med objRS(0). Dvs att man fyller textfältet med värdet i första indexet i arrayen.

Vet du något annat smidigare sätt man kan göra det på så hade vi varit tacksamma.

//mvh

Medlem sedan jan. 20001 372 inlägg
#4

vet inte om jag e fel ute men jag tycker det låter som du vill använda GetRows

dim minArray

strSQL = "SELECT (*) FROM customer WHERE anamn = '" & vanamn & "' AND losenord = '" & vlosen & "'" 
set objRS = Conn.Execute(strSQL) 

If NOT objRS.EOF Then
     minArray = objRS.GetRows
End If

conn.Close

Response.Write(minArray(0,0))
Medlem sedan nov. 20017 144 inlägg
#5

Men eftersom att du(antagligen) endast hämtar en rad ur databasen, så behöver du väl inte krångla med det?
Det skall väl bara vara att skriva ut posterna med: objRS("kolumn_namnet").

Medlem sedan nov. 20017 144 inlägg
#6

Varför göra en array när det inte handlar om att loopa ut flera poster? Fattar null... :q

Medlem sedan jan. 20001 372 inlägg
#7

varför inte?

Om man bara vill öppna databasen -> hämta datan -> stänga databasen -> skriva ut sidan
så är det utmärkt att använda GetRows, dock så kan man lika väl sätta t ex
variabel = objRS("kolumn_namnet")
fast det är ju lite jobbigt om det är många kolumner som skall ut och göra så för varje kolumn

Medlem sedan apr. 200336 inlägg
#8

Tackar så mycket för svaren. Det löste sig nu!
Vad skulle man göra utan er..

//mvh

Medlem sedan mars 20032 667 inlägg
#9

Ska du presentera data i tabellformat är det då bättre att använda GetString() istället för GetRows().

Medlem sedan dec. 20003 563 inlägg
#10

K@llen skrev:

Ska du presentera data i tabellformat är det då bättre att använda GetString() istället för GetRows().

nej!

Medlem sedan mars 20032 667 inlägg
#11

cyprys skrev:

K@llen skrev:

Ska du presentera data i tabellformat är det då bättre att använda GetString() istället för GetRows().

nej!

Motivera gärna det svaret.

Medlem sedan dec. 20003 563 inlägg
#12

För publicering i tabellformat så är det ganska logiskt sett smidigast om man redan har indexerat vilka celler "rows/columns" det handlar om.

Ifall du skulle plocka ut allt med getstring, har iofs aldrig gjort detta, så borde det första vara att börja indexera vilka som är rader och vilka som är kolumner med split.

Lite smidigare att redan ha detta gjort. ;)

/r Dilemmat med denna tråd är att det verkar bara vara en rad vilket i sin tur gör det onödigt med en 2-dimensionell array.

Medlem sedan mars 20032 667 inlägg
#13

Jag hänger inte med på ditt resonomang. :(

Min åsikt är fortfarande att getstring() är det absolut snabbaste sättet att hämta och presentera data, även om det har sina nackdelar. Men jag är öppen för beviset om motsatsen. :)

Medlem sedan dec. 20003 563 inlägg
#14

Hur gör du när du skall bygga upp tabellstrukturen med getstring?
Jag är som sagt inte väldigt bekant med detta i sammanhanget

Medlem sedan mars 20032 667 inlägg
#15

Det fina med getstring() är:

  1. Stänger din connection snabbt (precis som med getrows)
  2. Slipper loopa igenom en array eller ett recordset
sql = "select field1, field2 from table"
set rs = connection.execute(sql)

if not rs.eof then

strTable = rs.GetString(,,"</td><td>","</td></tr><tr><td>","_") 
%>

<table><%= strTable %></table>

<% end if %>

Nu har du presenterat hela recordsetet i tabellformat.

Medlem sedan maj 20011 312 inlägg
#16

Jag har alltid använt getrows. Har aldrig testat på getstring även om jag vetat om att den finns. Den låter väldigt användbar men är den prestandamässigt verkligen bättre än getrows?

Medlem sedan dec. 19998 577 inlägg
#17

Lukaspojken skrev:

Jag har alltid använt getrows. Har aldrig testat på getstring även om jag vetat om att den finns. Den låter väldigt användbar men är den prestandamässigt verkligen bättre än getrows?

Ja, men den är väldigt begränsad, det är liksom två helt olika områden man använder GetString och GetRows.

146 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)