/ 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
Debat: Ang. reference til felter i et reco~
Fra : Carsten Suurland


Dato : 08-01-03 13:28

Hej NG

Måske starten på en lille debat?

Jeg har nu set adskillige indsendte stykker kode, hvor afsenderen refererer
til feltværdier i et recordset, ved hjælp af rs("MitFelt").
Jeg vil her gerne opfordre til at man begynder at programmere lidt
"pænere"... og ikke mindst mere korrekt.

Det man faktisk får ud af at referere til rs("MitFelt") er en pointer til et
objekt af typen ADODB.Field - og ikke feltets indhold!
VBScript kan dog, via default properties, finde frem til hvad man faktisk
mener, som er:

rs.Fields.Item("MitFelt").Value

Ved kun at skrive rs("MitFelt") skal der hele tre gange (fields, item og
value) findes frem til default-properties, hvilket bestemt ikke gør
afviklingen af koden hurtigere.
Endvidere, syntes jeg, ikke det er pænt at stole på default-properties...
Hvad vil man f.eks gøre hvis disse defaultproperties (ifm. nye versioner af
ADO) ændrede sig fra en til en anden??? Så ville hele ens kode brage sammen!

Kommentarer er meget velkomne

/Carsten Suurland



 
 
Jesper Stocholm (08-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 08-01-03 13:44

Carsten Suurland wrote :

> Hej NG
>
> Måske starten på en lille debat?
>
> Jeg har nu set adskillige indsendte stykker kode, hvor afsenderen
> refererer til feltværdier i et recordset, ved hjælp af rs("MitFelt").
> Jeg vil her gerne opfordre til at man begynder at programmere lidt
> "pænere"... og ikke mindst mere korrekt.
>
> Det man faktisk får ud af at referere til rs("MitFelt") er en pointer
> til et objekt af typen ADODB.Field - og ikke feltets indhold!
> VBScript kan dog, via default properties, finde frem til hvad man
> faktisk mener, som er:
>
> rs.Fields.Item("MitFelt").Value
>
> Ved kun at skrive rs("MitFelt") skal der hele tre gange (fields, item
> og value) findes frem til default-properties, hvilket bestemt ikke gør
> afviklingen af koden hurtigere.
> Endvidere, syntes jeg, ikke det er pænt at stole på
> default-properties... Hvad vil man f.eks gøre hvis disse
> defaultproperties (ifm. nye versioner af ADO) ændrede sig fra en til
> en anden??? Så ville hele ens kode brage sammen!

jeg synes, at du har fat i en god pointe. Man skal blot holde sig for øje,
at de fleste spørgere herinde ikke har specielt meget/stor
programmeringsmæssig erfaring - og her vil jeg mene, at det er at skyde
over målet at "kræve" at man ikke i kodeeksempler skriver

rs("mitfelt")

men i stedet bruger

rs.fields.item("mitfelt").value

Jeg vil tro, at det ikke vil medføre øget overskuelighed - som de fleste
har brug for. Jeg tror ganske enkelt, at det vil forvirre mere end det
gavner.

Når det så er sagt, så synes jeg du skal skrive en artikel om det på
www.asp-faq.dk, som vi så kan referere til, når man vurderer, at spørgeren
kan bruge det til noget nyttigt.



--
Jesper Stocholm - http://stocholm.dk
if you are competing with the darknet, you must compete on the darknet's
own terms: that is convenience and low cost rather than additional
security. ( http://crypto.stanford.edu/DRM2002/darknet5.doc )

Jakob Andersen (08-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 08-01-03 14:03

"Carsten Suurland" <removethiscarsten@suurland.dk> wrote
> Det man faktisk får ud af at referere til rs("MitFelt") er en pointer til
et
> objekt af typen ADODB.Field - og ikke feltets indhold!
> VBScript kan dog, via default properties, finde frem til hvad man faktisk
> mener, som er:
>
> rs.Fields.Item("MitFelt").Value
>
> Ved kun at skrive rs("MitFelt") skal der hele tre gange (fields, item og
> value) findes frem til default-properties, hvilket bestemt ikke gør
> afviklingen af koden hurtigere.

Jeg har før haft samme princip som dig at man skal skrive helt ud, med
f.eks. objRS.Fields.Item(0).Value. Men da jeg på et tidspunkt rent faktisk
undersøgte hastigheden blev jeg overrasket over resultatet:

Se evt.:

<http://groups.google.com/groups?selm=aq1m1c%24dho%241%40news.cybercity.dk>
<http://groups.google.com/groups?selm=aq1n01%24eo2%241%40news.cybercity.dk>

Gennemsnitligt er det næsten dobbelt så hurtigt at bruge "genvejen"

> Endvidere, syntes jeg, ikke det er pænt at stole på default-properties...

Det kan vi godt blive enige om.

> Hvad vil man f.eks gøre hvis disse defaultproperties (ifm. nye versioner
af
> ADO) ændrede sig fra en til en anden??? Så ville hele ens kode brage
sammen!

Nu tror jeg ikke at standardegenskaberne bliver ændret i ADO strukturen, men
selvfølgelig er det værd at tage med i sine overvejelser hvis man regner med
løbende at opgradere ADO på løsninger der skal køre langt ud i fremtiden.

--
Jakob Andersen



Carsten Suurland (08-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 08-01-03 14:13

Hej Jakob

Ifm. hastighedsmålingerne så mener du vel, at det er hurtigst at skrive
feltreferencerne fuldt ud, mens det er hurtigere at Request("MyValue")?

/Carsten



Jakob Andersen (08-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 08-01-03 14:15

"Carsten Suurland" <removethiscarsten@suurland.dk> wrote
> Ifm. hastighedsmålingerne så mener du vel, at det er hurtigst at skrive
> feltreferencerne fuldt ud, mens det er hurtigere at Request("MyValue")?

Request( "key" ) er hurtigere end Request.Form.Item( "key" )

--
Jakob Andersen



Carsten Suurland (08-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 08-01-03 14:58

Hej Jakob

Jeg skal nok lige smide en artikel...
Jeg har iøvrigt også lige testet hastighederne af... og wow!
Det er endda en hel del hurtigere at bruge "genvejene"... også i ADO

Men det bliver det nu ikke bedre af

/Carsten



Jakob Andersen (08-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 08-01-03 15:01

"Carsten Suurland" <removethiscarsten@suurland.dk> wrote
> Jeg skal nok lige smide en artikel...

Det var nu Jesper der spurgte om det Men det vil være fremragende hvis
du ville skrive den.

> Jeg har iøvrigt også lige testet hastighederne af... og wow!
> Det er endda en hel del hurtigere at bruge "genvejene"... også i ADO

Jeps.

> Men det bliver det nu ikke bedre af

Nej, og det giver slet ingen logik.

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste