/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hvilken updateringskode er bedst?
Fra : Jakob Munck


Dato : 18-07-01 15:06

Jeg er i tvivl om hvad forskellen er og hvilken form for update af et
recordsæt, der er bedst, for - tilsyneladende - findes der flere måder. Den
ene kan man finde i www.html.dk's ASP-tuturial, og den går ud på at man,
efter at have skabt et recordsæt, har et antal SQL-sætninger, der opdaterer,
sådan som:

----------------
strSQL = "Update personer set"
strSQL = strSQL & "Fornavn='A',"
strSQL = strSQL & "Telefon='444444'"
strSQL = strSQL & "Where Id = 24"

Conn.Execute(strSQL)
--------------------

Den anden metode har jeg fundet i noget kode, som jeg ikke husker hvor
stammer fra. Den ser ud som vist her:

------------------------------
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") &
"'"
rs.open sql, conn, 1, 3

if Request.ServerVariables("REQUEST_METHOD") = "POST" then

'Opdaterer felterne
rs.update
rs("email") = Server.HTMLEncode(Request("email"))
rs("religion") = Server.HTMLEncode(Request("religion"))
rs("beskrivdigselv") = Server.HTMLEncode(Request("beskrivdigselv"))
rs("hvadsoegerdu") = Server.HTMLEncode(Request("hvadsoegerdu"))
rs.update
-----------------------------------

Hvad er forskellen mellem de to metoder, og hvilken er bedst?


v.h.

Jakob Munck



 
 
Jesper Nielsen (18-07-2001)
Kommentar
Fra : Jesper Nielsen


Dato : 18-07-01 18:33

> Hvad er forskellen mellem de to metoder, og hvilken er bedst?

Forskellen er, at du i det første eksempel benytter en ADODB.Connection og i
det andet eksempel benytter en ADODB.Recordsæt.

Sidstnævnte bør altid undgås hvis det er muligt (hvilket det er i langt de
fleste tilfælde), da man vinder en del i performance ved at benytte
Connection.

Læs evt. mere på
http://www.aspfaq.com/faq/faqShow.asp?fid=35

/jesper/



Allan Ebdrup (18-07-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 18-07-01 21:55

"Jesper Nielsen" <JesperN@jubii.dk> skrev i en meddelelse
news:QKj57.188$Od.13981@news.get2net.dk...
> > Hvad er forskellen mellem de to metoder, og hvilken er bedst?
>
> Forskellen er, at du i det første eksempel benytter en ADODB.Connection og
i
> det andet eksempel benytter en ADODB.Recordsæt.
>
> Sidstnævnte bør altid undgås hvis det er muligt (hvilket det er i langt de
> fleste tilfælde), da man vinder en del i performance ved at benytte
> Connection.

Hej Jesper
Ret beset bør det vel kun undgås hvis performance er meget vigtigt (Ok - det
er det oftest) men det kan ofte spare en masse problemer at opdatere gennem
ADO. Hvis det er vigtigere at have en fejlfri applikation færdig hurtigt kan
ADO sagtens benyttes, specielt hvis man er begynder og ikke har lavet
applikationer der opdaterer gennem SQL før. Man kan også tage med i
beregningerne hvor ofte koden vil blive brugt, hvis det er ofte kan det helt
sikkert betale sig at optimere performance, hvis det kun er een gang om året
kan ADO sagtens benyttes.
Forskellen er desude nærmere, at der i første tilfælde opdateres gennem SQL
mens der i andet tilfælde opdateres gennem ADO. SQL'en fortolkes af
databasens driver (der kan være forskelle fra DB til DB) og ADO metoden
burde være identisk for alle typer databaser med et ADO interface (er det
dog ikke altid).

MVH
Allan (flueknepper Ebdrup



Lars Hoffmann (22-07-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 22-07-01 03:00

Jesper Nielsen wrote:
>
> > Hvad er forskellen mellem de to metoder, og hvilken er bedst?
>
> Forskellen er, at du i det første eksempel benytter en ADODB.Connection og i
> det andet eksempel benytter en ADODB.Recordsæt.
>
> Sidstnævnte bør altid undgås hvis det er muligt (hvilket det er i langt de
> fleste tilfælde), da man vinder en del i performance ved at benytte
> Connection.

Mjaeh, jeg er kun delvist enig.

At bruge connection har den fordel at man kan lave rollback hvis noget
går galt undervejs, hvilket kan være en meget god ting.

Lars Hoffmann (22-07-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 22-07-01 03:02

Jesper Nielsen wrote:
>
> > Hvad er forskellen mellem de to metoder, og hvilken er bedst?
>
> Forskellen er, at du i det første eksempel benytter en ADODB.Connection og i
> det andet eksempel benytter en ADODB.Recordsæt.
>
> Sidstnævnte bør altid undgås hvis det er muligt (hvilket det er i langt de
> fleste tilfælde), da man vinder en del i performance ved at benytte
> Connection.

Mjaeh, jeg er kun delvist enig.

At bruge connection har den fordel at man kan lave rollback hvis noget
går galt undervejs, hvilket kan være en meget god ting.

Lars Hoffmann (22-07-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 22-07-01 03:43

Lars Hoffmann wrote:
>
> At bruge connection har den fordel at man kan lave rollback hvis noget
> går galt undervejs, hvilket kan være en meget god ting.

jeg mener naturligvis Recordset istedet for cennection

Allan Ebdrup (22-07-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 22-07-01 11:48

"Lars Hoffmann" <larshoffmann@teleline.es> skrev i en meddelelse
news:3B5A3401.5782F347@teleline.es...
> Jesper Nielsen wrote:
> >
> > > Hvad er forskellen mellem de to metoder, og hvilken er bedst?
> >
> > Forskellen er, at du i det første eksempel benytter en ADODB.Connection
og i
> > det andet eksempel benytter en ADODB.Recordsæt.
> >
> > Sidstnævnte bør altid undgås hvis det er muligt (hvilket det er i langt
de
> > fleste tilfælde), da man vinder en del i performance ved at benytte
> > Connection.
>
> Mjaeh, jeg er kun delvist enig.
>
> At bruge connection har den fordel at man kan lave rollback hvis noget
> går galt undervejs, hvilket kan være en meget god ting.

Hej Lars
Nu kommer det an på hvad du mener med "forskel", men hvis vi snakker
performance er det udslagsgivende at den ene metode benytter ADO og den
anden benytter SQL.
Du kan lave rollback med både ADO og SQL, du skal bare holde din connection
i live og håndtere dine transaktione vha. den.
Men hvis vi endeligt skal snakke performance (egentligt er scalability et
bedre ord) så er det bedste at lade MSSQL Server styre transaktionerne i de
stored procs eller at benytte COM+ til transaktionsstyring.

MVH
Allan Ebdrup.



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste