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å?
16 svar · 456 visningar · startad av Runken
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
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å?
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
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))
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").
Varför göra en array när det inte handlar om att loopa ut flera poster? Fattar null... :q
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
Ska du presentera data i tabellformat är det då bättre att använda GetString() istället för GetRows().
K@llen skrev:
Ska du presentera data i tabellformat är det då bättre att använda GetString() istället för GetRows().
nej!
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.
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.
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. :)
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
Det fina med getstring() är:
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.
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?
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.