webForumDet fria alternativet

Arrayer och indexering

16 svar · 456 visningar · startad av Runken

RunkenMedlem sedan apr. 200336 inlägg
#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

Jesper TMedlem sedan nov. 20017 058 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å?

RunkenMedlem 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

DavidBMedlem sedan jan. 20001 140 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))
Jesper TMedlem sedan nov. 20017 058 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").

Jesper TMedlem sedan nov. 20017 058 inlägg
#6

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

DavidBMedlem sedan jan. 20001 140 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

RunkenMedlem 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

K@llenMedlem sedan mars 20032 654 inlägg
#9

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

cyprysMedlem sedan dec. 20003 105 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!

K@llenMedlem sedan mars 20032 654 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.

cyprysMedlem sedan dec. 20003 105 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.

K@llenMedlem sedan mars 20032 654 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. :)

cyprysMedlem sedan dec. 20003 105 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

K@llenMedlem sedan mars 20032 654 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.

LukaspojkenMedlem sedan maj 20011 318 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?

VideMedlem sedan dec. 19996 094 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.

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