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


Efektivare sql ?

Postades av 2005-09-09 11:46:17 - carl karlsson, i forum asp - allmänt, Tråden har 4 Kommentarer och lästs av 470 personer

Hur gör jag för att få ihopp detta till en sql sats ?

<code>

'Öppnar db
call openConn()
set oRS = server.CreateObject("ADODB.Recordset")
set oRS2 = server.CreateObject("ADODB.Recordset")


strSQL = "SELECT * FROM tbl_User_Cat WHERE clientsID = " & splitSession("clientsID")
oRS.Open strSQL, dbc

Do Until oRS.EOF
strSQL2 = "SELECT * FROM tbl_User WHERE cId = "&oRS("cId")&" AND clientsID = " & splitSession("clientsID")
oRS2.Open strSQL2, dbc
Response.Write "<h2>" & oRS("cHeadline") & "</h2>"
Do Until oRS2.EOF
Response.Write oRS2("uFirstName") &"<br>"
oRS2.MoveNext
loop

oRS2.Close

oRS.MoveNext
Loop


'Stänger db
Call closeConn()

</code>


Svara

Sv: Efektivare sql ?

Postades av 2005-09-09 18:43:54 - Andreas Hillqvist

Nåt sånt här:

     'Öppnar db
    call openConn()
    set oRS = server.CreateObject("ADODB.Recordset")
    clientsID = splitSession("clientsID")
    strSQL = "SELECT tbl_User_Cat.*" & vbCrLf & _
              "FROM tbl_User_Cat LEFT JOIN tbl_User ON tbl_User_Cat.cId = tbl_User.cId" & vbCrLf & _
              "WHERE tbl_User_Cat.clientsID = " & clientsID & " AND tbl_User.clientsID = " & clientsID

    oRS.Open strSQL, dbc
        
    Do Until oRS.EOF
        If LastHeadline <> oRS("cHeadline") Then
            Response.Write "<h2>" & oRS("cHeadline") & "</h2>"
            LastHeadline = oRS("cHeadline")
        End If
        Response.Write oRS2("uFirstName") &"<br>"
        oRS.MoveNext
    Loop
            
            
    'Stänger db
     Call closeConn()


Det är väldigt fult att deklarera variabler i inklud filer. Att öppna variabler utanför openConn() och sedan stänga dem med closeConn() tycker jag är en väldigt ful lösning. Som jag hoppas du slutar med snarast.


Svara

Sv:Efektivare sql ?

Postades av 2005-09-09 21:22:23 - Benni Svensson

<b>Det är väldigt fult att deklarera variabler i inklud filer. Att öppna variabler utanför openConn() och
sedan stänga dem med closeConn() tycker jag är en väldigt ful lösning. Som jag hoppas du slutar med snarast. </b>

Med risk för att jag sticker ut hakan för långt.
Skrev du detta för att provosera, eller är det din uppriktiga uppfatning?
Om det är så, så tycker jag att det är helt upp åt väggarna.
Att via en enda includefil ansluta och avsluta en connection är inte dumt, det är klokt.
Blir det galet någonstans, eller man byter server/webbhotel, då är det på ett enda ställe som man ändra,
inte i varja asp-fil som man har.
Att förenkla sitt handhavande kan aldrig vara fel, det är förutseende.

Jag kan inte se några som helst nackdelar med att ha include-filer på det sättet.


Svara

Sv: Efektivare sql ?

Postades av 2005-09-10 13:55:58 - Mikael Johansson

Håller med starkt!


Svara

Sv: Efektivare sql ?

Postades av 2005-09-10 14:23:46 - Andreas Hillqvist

<b>
Med risk för att jag sticker ut hakan för långt.
Skrev du detta för att provosera, eller är det din uppriktiga uppfatning?
</b>
Min erfarenhet, förståelse och kunskap ger mig denna uppfattning.

<b>
Om det är så, så tycker jag att det är helt upp åt väggarna.
</b>
Jag tycker du är för ivrig att avfärda mina synpunkter. Var öppen för folks kritik. Istället för att avfärda den, be dem förklara varför det har en annan synpunkt. Ödmjukhet är en dygd. ;o9

<b>
Att via en enda includefil ansluta och avsluta en connection är inte dumt, det är klokt.
Blir det galet någonstans, eller man byter server/webbhotel, då är det på ett enda ställe som man ändra,
inte i varja asp-fil som man har.
Att föränkla sitt handhavande kan aldrig vara fel, det är förutseende.
</b>
Jag kritiserar inte att man använder en inkludfil för att hantera anslutningar till databasen. Jag tycker att det är et kraftfult verktyg RÄTT använt.

<b>
Jag kan inte se några som helst nackdelar med att ha include-filer på det sättet.
</b>
Att deklarera variabler i andrafiler, att slentreanmässigt öppna och stänga en anslutningen till datbasen på varje sida, anropa externa variabeler från en subrutin. Är tecken på "dålig" programmering.

En bätre implementering kan se ut på följande sätt:

<%

Function OpenConnection()
Dim Conn
Dim ConnectionString

    ConnectionString = Application("ConnectionString")

    Set Conn = CreateObject("ADODB.Connection")
    Conn.Open ConnectionString

    Set OpenConnection = Conn
End Function
%>


Den kan sedan implementeras på följande sätt:
<%
Dim cmd 
Dim Conn 
Dim rs
Dim rsSub
Dim P

Dim strSQL  

Const adInteger = 3 
Const adParamInput = 1 

    strSQL = "SELECT * FROM tbl_User_Cat WHERE clientsID = " & splitSession("clientsID")            

    'Öppnar db
    Set Conn = OpenConnection()

    Set cmd = CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = Conn
    cmd.CommandText = "SELECT *" + vbCrLf + _
                      "FROM tbl_User" + vbCrLf + _
                      "WHERE cId = @cId AND clientsID = @clientsID"

    Set P = cmd.CreateParameter("@clientsID", adInteger, adParamInput, , splitSession("clientsID"))
    cmd.Parameters.Append P

    Set P = cmd.CreateParameter("@cId", adInteger, adParamInput)
    cmd.Parameters.Append P

    cmd.Prepared = True



    Set rs = Conn.Execute(strSQL)
        
    Do Until rs.EOF
        Response.Write "<h2>" & oRS("cHeadline") & "</h2>"

        P.value = oRS("cId")
        rsSub.Open cmd
        Do Until rsSub.EOF
            Response.Write rsSub("uFirstName") &"<br>"
            rsSub.MoveNext
        Loop                
        rsSub.Close
                
        rs.MoveNext
    Loop
    rs.Close

    'Stänger db
    Conn.Close
%>


Fortfarande en inklude fil.

Passa på att demonstrerar hur man kan implementera en parameterfråga. Mycket bra sätt att förhindra SQL inject och göra koden mer databas oberoende.


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 602
27 953
271 705
4 262
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