Avatar billede tofte Juniormester
29. juni 2008 - 15:33 Der er 3 kommentarer og
1 løsning

Læs db værdi - men kun én gang

Hej

Jeg faldt lige over spørgsmålet :
http://www.eksperten.dk/spm/836632

I bunden bemærker keysersoze at det nogle gange kun er muligt at læse en værdi fra en database en gang.

Er der nogen som har en forklaring på hvad der sker, jeg er næsten sikker på at det har virker tidligere. Men hvorfor kan man ikke længere?

Eks

Set Rs = adoCon.Execute("SELECT felt FROM tabel")
response.write Rs("felt")
response.write Rs("felt")

her udskrives værdien for Rs("felt") kun første gang, anden gang er den blank. Er der nogle som har fundet svaret på dette?

Rasmus
Avatar billede cpufan Juniormester
29. juni 2008 - 15:37 #1
det er noget med cursortype
om man må gå frem og tilbage i et recordset.

du kan sætte et variabel

minvar = rs("felt")

response.write minvar

response.write minvar
Avatar billede erikjacobsen Ekspert
29. juni 2008 - 15:52 #2
"har fundet svaret"  ?? Svaret er vel bare, at det kan man ikke. Ikke altid. Det afhænger af driveren til SQL-systemet. Og årsagen til det er effektivitet - hvis driveren skal holde på data, så du kan aflæse flere gange, så skal den bruge flere ressourcer.

Alle fornuftige anvendelser af data fra database kopierer dem over i en variabel, eller et objekt med flere felter, så anvendelsen er uafhængig af databasen, og kan ske i en anden del af systemet.

Den gyldne regel er at aflæse felterne i samme rækkefølge som de står i SELECT-sætningen, og kun een gang. Og synes jeg engang jeg var nødt til at anbringe de "store" felter til sidst, felter som TEXT, BLOB, osv, der kan fylde mere end 255 tegn - men jeg er ikke sikker på at det var/er nødvendigt.
Avatar billede tofte Juniormester
29. juni 2008 - 16:13 #3
<cupfan> det blev også løsningen for mig, men jeg kan bare mindes at det har virket tidligere. Og jeg kan ikke se hvad der er sket siden det ikke virker mere.

bruger mySQL odbc. Og tror måske det er en ændring som er sket fra 3.51 til 5.1
Avatar billede tofte Juniormester
30. juni 2008 - 14:51 #4
Tak for jeres svar, jeg vil lige prøve at rode lidt med driveren. Jeg har ind til vidre bare programmeret mig ud af det, men jeg vil nu lige prøve at finde ud af hvorfor det har virket.

Jeg regner ikke med at du vil have points Erik, hvis det skulle have ændret sig så må du sige til.

Rasmus
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester