Avatar billede ataxx Nybegynder
03. maj 2009 - 20:17 Der er 4 kommentarer

Kan ikke hente data ud to gange

Hej

Jeg er meget ny til MySQL, har i lang tid brugt Access til mine websites. Men tænkte at jeg ville prøve med en MySQL.
Jeg koder classic ASP.

Jeg har lavet en alm databaseconnection, og kan fint på den til at hente de rigtige data ud.
Jeg er ved at lave en side, med en liste over medlemmer.

Jeg har en alm. Do Until RS.EOF = True, hvor jeg laver RS.MoveNext og loop i bunden.

Mit problem opstår, da jeg ville bruge feltet Navn to gange.
én gang til at vise navnet på medlemmet og én gang hvor jeg bruger det som alt i et <img> tag til det medlem.

I koden kommer <img> tagget først, og den indsætter fint værdien, men da jeg i næste linie igen kalder RS.fields("Navn") er den tom.

Sådan plejer det ikke at være i access. Gør jeg noget helt forkert?

Jeg er lidt i tvivl om, hvor meget af min kode I skal se, så hvis det er, så skriv, så poster jeg det :)
Avatar billede erikjacobsen Ekspert
03. maj 2009 - 21:23 #1
Aflæs værdien een gang, og læg det i en variabel, som du så kan bruge 2 eller flere gange.
Avatar billede ataxx Nybegynder
04. maj 2009 - 09:15 #2
Hey

Det med at smide det i en variabel havde jeg allerede brugt som workaround, det vil jeg ikke kalde en løsning.

Tilgengæld har jeg selv fundet en (semi)løsning.
Det viste sig at det var den felttype jeg havde brugt (longtext) som åbenbart ikke er så smart. Jeg lavede det om til char(20) så kunne jeg hente det ud mere end én gang..

Men så kan jeg jo lave mit spørgsmål lidt om.... Hvilke felttyper er bedst at bruge, både generelt og til ganske alm. tekst, hvor man ikke lige ved hvor mange karakterer man kommer til at bruge. Jeg går ud fra at char(20) betyder at feltet kan indeholde 20 tegn.

/Rune
Avatar billede webweaver Praktikant
04. maj 2009 - 20:30 #3
Det er da en udemærket måde at gøre det på, ved at gemme det i en variabel og bruge den flere steder. Istedet for at trække data ud af en database flere gange, når man allerede har det ved hånden :)

char(20) er en defineret streng af 20 tegn ja :)
Avatar billede erikjacobsen Ekspert
04. maj 2009 - 21:43 #4
Nu er det nok ikke så udbredt i gammeldags ASP, men ellers henter man data fra databasen, og putter det i objekter, et andet sted end der hvor man bruger data. "Traditionel ASP-programmering" hvor alt bliver blandet sammen, er - øh - lidt gammeldags ;)

Så der er generelt intet problem i at visse databasedrivere kun opfylder de mest basale krav: aflæse felterne i samme rækkefølge, som i forespørgslen, og kun een gang, og måske også de "store" felter til sidst.

Og longtext er et "stort" felt, hvor fx char og varchar er "små" felter. I dit tilfælde er det nok varchar(20) der bør bruges - hvis du ikke kommer over 20 tegn.
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
Computerworld tilbyder specialiserede kurser i database-management

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