"Peter Lykkegaard" <polonline@hot.mail.com> skrev i en meddelelse
news:F2u77.21$YE5.1733@news.get2net.dk...
> "Allan Ebdrup" <ebdrup@ti-fire.dk> wrote in message
> news:9jk4o0$1amg$1@news.cybercity.dk...
> > "Peter Lykkegaard" <polonline@hot.mail.com> skrev i en meddelelse
> > news:BLc77.84$aN4.14628@news.get2net.dk...
> > > Lave du noget ala dette, så sløver du det hele ned
> > >
> > > Dim strSQL
> > >
> > > strSQL = "SELECT MyField FROM myTable "
> > > strSQL = strSQL & "WHERE AnotherField = '" & strAValue & "'"
> >
> > Hej Peter
> > Jeg ved godt hvordan det virker, du skal gøre det sådan:
> > strSQL = "SELECT MyField FROM myTable " & _
> > "WHERE AnotherField = '" & strAValue & "'"
> >
> Nope
>
> strSQL = "SELECT MyField FROM myTable WHERE AnotherField = '" & strAValue
&
> "'"
> Men lad nu det ligge
> Pointen var mere at man skal være lidt varsom med concateneringer/streng
> gymnastik hvis det ikke er nødvendigt
>
> Svjv så fx C eller TP ikke de begrænsninger
> Men det er jo lidt uden for scope her
Hej Peter
1) Jo, Forskellen mellem min løsning og din anden løsning er minimal, den
store forskel ligger i det første eksempel hvor du benytter en variabel til
"mellemregning", det kræver først en allokering og efterfølgende en ny og
større allokering, samt flytning af den første del af strengen. Jeg er enig
i at an skal være varsom, men det er vigtig at forstå hvad man skal være
varsom med. Og igen vil jeg opfordrer til at man tænker sig om, men ikke
"går amok" og sidder i timevis og optimere ens strengehåndtering - der er
mere at hente i DB optimering.
2) C og TP gør dette på nøjagtigt samme måde, grunden til at man som regel
ikke ligger mærke til at det koster er fordi ASP sider nemt kan blive kaldt
30 gange i sekundet (man loadtester dem) og ASP er fortolket, mens et TP
eller C program er kompileret og/eller ikke indgår i en webapplikation og
derfor ikke bliver udsat for tilnærmelsesvis samme optimering og
performance-test. Det betyder nemlig specielt meget med allokering når
"programmet" (ASP siden) bliver kørt 30 gange i sekunded over en længere
periode.
3) Jeg synes så absolut ikke vi er "udenfor scope" eller ude på et
sidespor - denne diskussion er utrolig vigtig for at forstå hvordan man
bruger strenge, det er noget MANGE har problemer med - det er derfor der er
kommet den nye strengtype i .Net, og derudover er denne diskussion med til
at understrege den kæmpe store forskel der mellem kravene til en
webapplikation og en typisk stand-alone applikation (.exe).
MVH
Allan Ebdrup