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


RecordSet? - Förvirrad

Postades av 2003-04-01 23:45:05 - Uffe Bengtsson, i forum asp - allmänt, Tråden har 8 Kommentarer och lästs av 482 personer

Hej
Jag har i en del inlägg här i forumet läst att man inte ska öppna recordset inne i loopar. Samtidigt har jag i andra inlägg läst att det är bättre att öppna ett nytt RS istället för att använda sig av joins. Någon som kan förklara för mig vilket som gäller. Jag sitter just nu i en sits där jag förmodligen måste öppna både 2 o 3 RS inne i varandra, men jag blir lite förvirrad när jag söker i forumet efter tips. Vilket är bäst?


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-02 00:45:54 - Benni Svensson

Hej.
Det här låter lite lustigt i mina öron, öppna ett nytt rs inne i en lopp??
Försök att förklara dig lite närmare, och lite kod.

Att använda sig av flera rs om du istället kan använda dig av joins tycker jag rent sporadiskt låter lite knasigt.

Den hårda läxan som jag har lärt mig, är att gör så mycket som möjligt i en SQL.
En viktig sak som du vinner är bl a att du kan stänga din connections mycket snabbare, och det är ju utav vikt.


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-02 11:57:43 - Andreas Hillqvist

Joins brukar gå snabbare än att öppna recordset. Eftersom det ofta är anropet till databasen som tar tid.
Om du måste öppna ett recordset i en loop använd då istället MSDataShape. Se inlägg: [ADODB: Command.Prepered]


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-02 13:16:14 - Jonas Sjöblom

det beror ju lite på.. i en select är ju join det smartaste.. men ska du lägga in flera rader i en tabell på en gång så ser inte jag nån annan lösning än att använda en loop


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-02 15:25:11 - Andreas Hillqvist

Loop? Vad menar du med loop? Från ett recordset? Eller genom en annan datakälla?

Om man skall skapa/överföra poster från en tabell kan man infoga flera poster med en SQL-sats:
<code>
strSQL = "INSERT INTO Friends (FriendUser, FriendFriend)" & vbCrLf & _
"SELECT " & Session("USerId") & ", UserID" & vbCrLf & _
"FROM Users" & vbCrLf & _
"WHERE UserId IN (12, 23, 45, 67)"
</code>
Om informationen som infogas inte finns. Blir en lop nödvändig.

Med jag tror frågan gäller presentation av data.


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-02 16:47:47 - Tomas Lundgren

Jag tror på att använda joins istället för att skapa nya recordset i loopen. Din kod blir lättare att läsa och du gör ett anrop till databasen istället för flera stycken.


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-03 12:56:10 - Uffe Bengtsson

Så här ser exemplet ut som jag jobbar med:

<code>
strSQL = "SELECT * FROM tblOrter INNER JOIN (tblBiltyp INNER JOIN tblFordon ON tblBiltyp.TypId = tblFordon.TypId) ON tblOrter.OrtId = tblFordon.OrtId" & _
" WHERE tblFordon.TypId=" & TypId & " ORDER BY tblFordon.PVnr asc"</code>
Så långt inga problem. Problemet uppstår när jag blandar in en fjärde tabell som är relaterad till tblFordon.FordonsId, då loopas alla poster ut som finns i den relaterade tabellen och det vill jag inte, men informationen vill jag ha. (Man kan inte både ha kakan o........)

<code>
tblFordon.FordonsID -->> tblKoppling.FordonsId (1 till många)
</code>
Frågan är alltså, hur hanterar jag infon i den relaterade tabellen samtidigt som jag bara loopar ut tblFordon, tblOrter, och tblBiltyp?


Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-03 15:09:35 - Andreas Hillqvist

Är det hur du loopar ut det som du undrar över?

Du kan ju göra så här:
<code>
Dim rs
Dim con
Dim FordonsId
Set con = Server.CreateObject("ADODB.Connection")
con.Open ">>>Connection String<<<"

strSQL = "SELECT tblFordon.*, tblBiltyp.*, tblOrter.*, tblKoppling.*" & vbCrLf & _
"FROM ((tblFordon LEFT JOIN" & vbCrLf & _
" tblBiltyp ON tblFordon.TypId = tblBiltyp.TypId) LEFT JOIN" & vbCrLf & _
" tblOrter ON tblFordon.OrtId = tblOrter.OrtId) LEFT JOIN" & vbCrLf & _
" tblKoppling ON tblFordon.FordonsID = tblKoppling.FordonsId" & vbCrLf & _
"WHERE tblFordon.TypId = " & TypId & vbCrLf & _
"ORDER BY tblFordon.PVnr ASC"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL
Do Until rs.EOF
If FordonsId <> rs("FordonsId") Then
'tblFordon Loop
FordonsId = rs("FordonsId")
End If
'tblKoppling Loop
rs.MoveNext
Loop

rs.Close
Set rs = Nothing

con.Close
Set con = Nothing
</code>



Svara

Sv: RecordSet? - Förvirrad

Postades av 2003-04-03 16:41:55 - Uffe Bengtsson

Jaha, hmm....det blev ju hur bra som helst.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 570 808
27 960
271 761
520
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