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 / Forum översikt / inlägg

Posta nytt inlägg


Loopar ut samma information hela tiden

Postades av 2007-05-26 19:24:22 - Patrik Waern, i forum asp - allmänt, Tråden har 3 Kommentarer och lästs av 796 personer

Hej jag har precis börjat med ASP. Nu håller jag på med en sida som ska visa information i en ACCESS Databas. Problemet jag har är att det verkar Loopa ut samma fält i Databasen hela tiden.
Min kod ser ut så här.
Dim sqlfraga
Dim sqlsvar
Dim datum
Dim handelse
Dim anmarkning
sqlfraga="SELECT * FROM aktuellt;"
Set sqlsvar=connect.Execute(sqlfraga)
datum=sqlsvar("Datum")
handelse=sqlsvar("Händelse")
anmarkning=sqlsvar("Anmärkning")
Response.Write("<table>")
Do until sqlsvar.EOF
Response.Write("<tr>")
Response.Write("<td>")
if datum = "" Then
Response.Write("&nbsp;")
Else
Response.Write(datum)
End if
Response.Write("</td>")
Response.Write("</tr>")
sqlsvar.MoveNext
Loop
Jag har försökt att lägga in en variabel som räknar upp men inte fått det att fungera. Kan någon hjälpa mig.


Svara

Sv: Loopar ut samma information hela tiden

Postades av 2007-05-26 20:19:51 - Andreas Hillqvist

Dim connect
Dim Recordset
Dim DatumFält
Dim HändelseFält
Dim AnmärkningsFält
Const SQL = "SELECT * FROM aktuellt;"
    Set connect = CreateObject("ADODB.Connection")
    connect.Open "..."

    Set Recordset = CreateObject("ADODB.Recordset")
    Recordset.Open SQL, connect

    Set DatumFält = Recordset("Datum")
    Set HändelseFält = Recordset("Händelse")
    Set AnmärkningsFält = Recordset("Anmärkning")

    Response.Write("<table>")
    Do until Recordset.EOF
        Response.Write "<tr><td>"
        If IsDate(DatumFält) Then
            Response.Write(datum)
        Else
            Response.Write("&nbsp;")
        End if
        Response.Write "</td></tr>"
        Recordset.MoveNext
    Loop 
    Recordset.Close

    connect.Close

Vad är skillnaden? Set framför tilldelningen.
Vad du gör är att du tilldelar variablen objektet istälet för värdet.


Svara

Sv:Loopar ut samma information hela tiden

Postades av 2007-05-26 20:40:33 - Thomas Roman

Jag har aldrig använt Set när jag lägger in värden i variabler från RS. Det har fungerat problemfritt för mig, men är det fel sätt att göra?


Thomas


Svara

Sv: Loopar ut samma information hela tiden

Postades av 2007-05-26 23:59:28 - Andreas Hillqvist

Vad är vanlig att göra är:

Do Until rs.EOF
    Response.Write rs("X")
    rs.MoveNext
Loop

Eller:
Do Until rs.EOF
    X = rs("X")
    Response.Write X
    rs.MoveNext
Loop


Låt oss titta närmare på rs("X").

Vilket igentligen kan skrivas ut som:
<code>
rs.Fields.Item("X").Value
</code>
Detta för att Fields är defaultegenskapen på recordset klassen.
Item default egenskapen på Fields klassen.
Value default egenskapen på Field klassen.

Den kostsamaste är att anropa Item på Fields klassen, vilket måste kolla igenom fälten tills den hitta en med samma namn. Tror inte det är en hash tabell. Item tar även index vilket är snabbare. Skillnaden hade inte varit lika tydlig med en hashtabell.


Vad du gör när du använder Set är att du håller en referens tilll fältobjektet:
Set X = rs("X")

Do Until rs.EOF
    Response.Write X
    rs.MoveNext
Loop


Så slipper vb att slå upp fältet i samlineng för varje loop. Den behöver bara göra det en gång.
Det blir alltså snabbare.

Ett annat sätt att använda denna optimering är att skicka fält objekten som parametrar till en subrutin:
<select name="user">
<%
Sub WriteOptions(rs, IdField, TextField)
    Do Until rs.EOF
        Response.Write "<option value=""" & IdField & """>" & Server.HTMLEncode(TextField) & "</option>"
        rs.MoveNext
    Loop
End Sub


Dim con
Dim rsUsers
    Set con = CreateObject("ADODB.Connection")
    con.Open Application("ConnectionString")

    Set rsUsers = con.Execute("SELECT UserId, UserName FROM Users ORDER BY UserName")

    WriteOptions rsUsers, rsUsers("UserId"), rsUsers("UserName")

    rsUsers.Close

    con.Close
%>
</select>


Svara

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 159
27 952
271 704
967
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