Avatar billede ch007 Nybegynder
20. november 2010 - 10:24 Der er 10 kommentarer og
1 løsning

Kode virker ikke efter skift af webhotel

Nedenstående kode virker ikke mere efter skift fra one.com til DanDomaine...


Set RS2 = myConn.Execute("Select * from Links WHERE Nr_a = '" & Request("v") & "' AND Link <> '0' order by Navn")

    If RS2.EOF Then

        Response.write "<font color=red size=3>Der er opstået en databasefejl - [FEJL #15b]</font>"

    Else

        Response.write "<Table border=0 width='100%'>"

        'så ryk til den første post i tabel

        RS2.movefirst

        ' kør en lykke til den har være igennem alle poster i tabel 

        DO UNTIL RS2.EOF

            If RS2("Link") <> "0" Then

           

           

                       

                Response.write "<TR><TD width='22%'><a href='http://" & RS2("Link") & "' target='_blank' rel='nofollow'><IMG SRC='grafik/link.gif' border=0><BR><font size=1><B>" & RS2("Navn") & "</B></font><BR>" & RS2("Link") & "</A></TD><TD width='78%'>"

           

               

                Response.Write "<i>" & RS2("Beskrivelse") & "</i></TD></TR><tr height='4'><td></td></tr><tr height='1' bgcolor=black><td colspan=2></td></tr><tr height='4'><td></td></tr>"

            End if


        'ryk en frem i tabel

        RS2.movenext

        'start lykke igen

        loop

        Response.write "</table>"

    End if



Den kommmer ikke med en fejl, den skriver blot følgende på hjemmesiden:

<TR><TD width='22%'><a href='http://' target='_blank' rel='nofollow'><IMG SRC='grafik/link.gif' border=0><BR><font size=1><B>NAVN</B></font><BR>www.link.dk</A></TD><TD width='78%'><i>NAVN2</i></TD></TR><tr height='4'><td></td></tr>


Dvs. korrekt men intet link i <a></a>... Hvorfor ikke? Den skriver det rigtig nok efterfølgende, meget mærkeligt...
Avatar billede erikjacobsen Ekspert
20. november 2010 - 10:37 #1
Du sku' tage og prøve

DO UNTIL RS2.EOF
  rslink = RS2("Link")
  rsnavn = RS2("Navn")

og så bruge rslink og rsnavn alle de steder hvor du ellers bruger RS2("Link") og RS2("Navn")
Avatar billede ch007 Nybegynder
21. november 2010 - 16:28 #2
Det er meget mystisk...

Hvis jeg skriver

rslink = "2"

Så skriver den fint 2 ud ved <a href> men skriver jeg:

rslink = RS2("Link")

skriver den intet ud ved <a href=> men fint ud efterfølgende ved blot

Response.write "rslink"...

But why??? Jeg fatter det virkelig ikke...
Avatar billede erikjacobsen Ekspert
21. november 2010 - 16:33 #3
Retfærdigvis skal siges at hvis du skal bruge

DO UNTIL RS2.EOF
  rslink = RS2("Link")
  rsnavn = RS2("Navn")

som jeg skrev ovenfor, så skal du også ændre til

Set RS2 = myConn.Execute("Select Link,Navn from Links WHERE Nr_a = '" & Request("v") & "' AND Link <> '0' order by Navn")

Ideen i dette er at skrive de konkrete felter i samme rækkefølge som man aflæser dem, og kun aflæse dem een gang.

Men forøvrigt: hvad er typerne for de 2 felter?
Avatar billede ch007 Nybegynder
23. november 2010 - 09:53 #4
Link er text
Navn er varchar(40)

Jeg behøver vel ikke skrive

myConn.Execute("Select Link,Navn from

når jeg har skrevet Select * ??
Avatar billede ch007 Nybegynder
24. november 2010 - 18:34 #5
Er der ikke andre, der har et bud på en løsning?
Avatar billede erikjacobsen Ekspert
24. november 2010 - 19:16 #6
Jo, du skal skrive "SELECT Link,Navn ..."

Og så skal du aflæse dem i samme rækkefølge:

DO UNTIL RS2.EOF
  rslink = RS2("Link")
  rsnavn = RS2("Navn")

Og kun aflæse een gang. Og hvis det ikke virker, så prøv i omvendt rækkefølge:

"SELECT Navn,Link ..."

DO UNTIL RS2.EOF
  rsnavn = RS2("Navn")
  rslink = RS2("Link")

Hvis din link ikke behøver være en "text" kan du muligvis gøre som du plejer.
Avatar billede ch007 Nybegynder
25. november 2010 - 16:13 #7
Hmm... Ja det virker nu. Stort tak for hjælpen.

Hvorfor virker det kun hvis jeg skriver rsnavn = RS2...

Og benytter konstanten istedet for RS2 nede i min kode??

Smider du et svar?
Avatar billede erikjacobsen Ekspert
25. november 2010 - 16:20 #8
En længere historie. Men det er noget med de drivere der sidder mellem databasen, og dit program. Jo mindre de skal lave, jo hurtigere og simplere kan de laves. Derfor kan det ske at resultater ikke kan aflæses 2 gange, eller at aflæsning af en "stor" værdi som typen text (selv om det ikke indeholder mange bytes), kan rydde andre værdier. På den anden side kan der være drivere, der husker det hele.

Derfor kan man programmere op mod det mindste, der kan tilbydes, som er noget i retning af: aflæse kun een gang, og i samme rækkefølge som de nævnes i select-særningen.
Avatar billede ch007 Nybegynder
16. maj 2011 - 11:02 #9
Vil du smide et svar, så jeg kan lukke denne ?
Avatar billede erikjacobsen Ekspert
16. maj 2011 - 11:42 #10
Jeg samler slet ikke på point, tak. Svar selv, accepter dit eget svar.
Avatar billede ch007 Nybegynder
12. oktober 2011 - 20:11 #11
Ok -svar
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