Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Optimera med GetRows och GetString

Postad 2001-08-27 av Staffan Berg i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4339, Betyg: 96%

Förord

Alla vill vi skapa snabba websidor och det är inte alla gånger så lätt att få till sidor som är optimerade till max på alla fronter. Att öppna recordset tar kraft från datorn, men tack vare SQL behöver vi inte öppna något sådant när vi vill infoga, ta bort eller uppdatera poster. När vi vill hämta in data från databaser är vi dock tvungna till detta och då finns det två metoder som med fördel kan användas för att hämta poster från ett recordset på ett optimalt sätt, nämligen GetRows och GetString. Nedan följer några exempel som beskriver dessa metoder.
Innehåll
  » GetRows
  » GetString
  » Exempel att tanka
  » Var denna artikeln användbar?


GetRows

Metoden GetRows hämtar alla data i ett recordset i ett enda anrop och sparar dem i en tvådimensionell vektor. Vi kan därmed omedelbart efter anropet stänga både recordsetet och databaskopplingen och sedan loopa igenom vektorn på traditionellt vis.


<%
arrayData = rs.GetRows()
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing

Response.Write("")
For iRad = 0 To Ubound(arrayData, 2)
Response.Write("")

For iKol = 0 To Ubound(arrayData, 1)
Response.Write("")
Next
Response.Write("")
Next
Response.Write("
" & arrayData(iKol, iRad) & "
")
%>




I exemplet ovan ser vi att kolumnerna hamnar i dimension två i vår vektor och posterna (eller raderna) hamnar i dimension ett. Genom att ta reda på högsta indexet i respektive vektordimension kan vi loopa genom vektorn rakt upp och ned.

Prestandavinsten med att använda GetRows gentemot vanlig loop med öppen databas blir påtaglig, särskilt med recordset med många poster. En testkörning med ett recordset med 50 000 poster tog med GetRows 10 120 ms och med vanlig loop 16 787 ms.


GetString

En snarlik funktion till GetRows är GetString som också hämtar innehållet i ett recordset i ett och samma anrop. Skillnaden ligger i att GetString formaterar hela tabellstrukturen och lägger alltihop i en textsträng. Till skillnad från GetRows så är GetString begränsad till att hålla samma struktur och formatering rakt genom när innehållet sedan skall presenteras. Precis som GetRows ges möjligheten att stänga recordsetet och databaskopplingen omedelbart efter anropet. All data finns kvar i variabeln och dessa kan vi presentera när vi känner för det. Det viktigaste i sammanhanget är att databasen är stängd.
Ett exempel för GetString följer nedan:


<%
strData = rs.GetString(2,-1,"","","-Null-")

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing

Response.Write("
")
Response.Write(strData)
Response.Write("
")

%>

Som Ni ser ovan så tar GetString emot fem argument. Det första argumentet ("2") står för formatet kolumnavdelare, postavdelare, nullvärde. Detta är faktiskt det enda formatet som finns av GetString.
Det andra argumentet,"-1", anger att samtliga poster skall hämtas från recordsetet. Hade vi här angett till exempel 18 eller 35 så hade istället de första 18 respektive 35 posterna hämtats. Det tredje argumentet är en textsträng som läggs in efter varje kolumn och det fjärde argumentet läggs in efter varje post (eller rad).
Det femte och sista argumentet som tas emot ersätter eventuella nullvärden med textsträngen som anges.


Exempel att tanka

Fil: getrows_getstrings.zip


Var denna artikeln användbar?

Om du gör någon intressant (eller kanske något konstigt fel) på grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in dina tips till denna artikel.

/Staffan Berg
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
974
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies