|
| To metoder til db-udtræk, hvad er forskell~ Fra : Jakob Munck |
Dato : 10-12-04 07:51 |
|
Der eksisterer to forskellige måder at lave kontakt til en database i
Microsoft-miljøet (ASP). De to metoder er vist her nedenfor:
------------------------------------------------------
Metode 1:
SQL = "SELECT * FROM tbNyheder WHERE (ID = " & Request.QueryString("id") &
")"
Set RS = Conn.Execute(SQL)
--------------------------------------------------------
Metode 2:
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tbNyheder WHERE (ID = " & Request.QueryString("id")
& ")"
rs.Open strSQL, myConn, 1, 3
--------------------------------------------------------------
Spørgsmålet er så, hvilken af de to metoder, der er bedst og hvad forskellen
mellem dem overhovedet er? Hvilken skal man vælge, når man koder, og
hvorfor?
v.h.
Jakob Munck
| |
Jakob Andersen (15-12-2004)
| Kommentar Fra : Jakob Andersen |
Dato : 15-12-04 20:08 |
|
"Jakob Munck" <jm2_fjern_dette@webspeed.dk> wrote
> Set RS = Conn.Execute(SQL)
Med Execute metoden på connectionobjektet returnerer man svjh altid et
recordset med en fastforward cursor(tjek evt. ved at test cursortypen når du
har eksekveret ovenstående). Der er mulighed for at specificere hvilken type
kommando det er (f.eks. Stored procedure, tabelnavn, Fil osv) og desuden en
række andre muligheder f.eks. at data skal returneres som en stream eller
returneres som et Record objekt hvis det er en stored procedure man ved kun
returnerer en række. Læs mere om de specifikke optionelle paramtre i
manualen under ExecuteOptionEnum og CommandTypeEnum.
> rs.Open strSQL, myConn, 1, 3
Med open metoden på recordsetobjektet har du mulighed for at vælge hvilken
cursortype og locktype du vil have på recordsettet hvilket kan give dig
mulighed for at opdatere og indsætte nye rækker vha. recordsettet uden at
skrive yderligere SQL-sætninger igen kan du også benytte optionelle
parametre fra ExecuteOptionEnum og CommandTypeEnum
Så sagt på en anden måde du kan alt du kan med Recordsettets Open metode som
du kan med Connection objektets execute metode, dog er din kode lidt lettere
at læse for os mennesker hvis man benytter Connectionobjektets Executemetode
da der ikke er så mange parametre at rode rundt med.
Forresten er disse to heller ikke de eneste måder at hente data på i ASP.
--
Jakob Andersen
| |
|
|