Avatar billede fun22 Nybegynder
07. august 2006 - 17:36 Der er 7 kommentarer og
1 løsning

Problemer med funktion

Hej

Jeg har en funktion som jeg bruger til at hive tekst ud af databasen med:

<%
Function Text(Lang, TextID)

    Set Rs = Conn.Execute("SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'")
        Text = RS("text")                   
    Rs.Close
    Set Rs = Nothing

End Function
%>

Kaldes med:

<%=Text(dk,PageTitle)%>

Men den køre funktionen med det samme siden læses hvilket vil sige at Lang og TextID er tom.. OG så kommer der jo en fejl... Hvordna kan man undgå det?
Avatar billede thesurfer Nybegynder
07. august 2006 - 18:39 #1
1) Tillad nullængde i din database

2) IF-sætninge:
<%
Function Text(Lang, TextID)
if Lang <> "" and TextID <> "" then
    Set Rs = Conn.Execute("SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'")
        Text = RS("text")                   
    Rs.Close
    Set Rs = Nothing
end if
End Function
%>
Avatar billede thesurfer Nybegynder
07. august 2006 - 18:40 #2
Det burde være det samme, som at returnerer en tom streng:

<%
Function Text(Lang, TextID)
if Lang <> "" and TextID <> "" then
    Set Rs = Conn.Execute("SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'")
        Text = RS("text")                   
    Rs.Close
    Set Rs = Nothing
else
    Text = ""
end if
End Function
%>
Avatar billede thesurfer Nybegynder
07. august 2006 - 18:41 #3
Hmm.. det er nok  bedre at lukke forbindelsen først:

<%
Function Text(Lang, TextID)
if Lang <> "" and TextID <> "" then
    dim tmp
    Set Rs = Conn.Execute("SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'")
        tmp = RS("text")                   
    Rs.Close
    Set Rs = Nothing
    Text = tmp
else
    Text = ""
end if
End Function
%>
Avatar billede fun22 Nybegynder
07. august 2006 - 18:46 #4
Den retunere ingen ting lige meget hvad man gør :(
Avatar billede thesurfer Nybegynder
07. august 2006 - 19:05 #5
Hvis Lang er tom, eller TextId er tom, returneres der ingenting..

Ellers skulle den gerne returnere data fra databasen..

Prøv det her:

<%
Function Text(Lang, TextID)
if Lang <> "" and TextID <> "" then
    dim tmp, sql
    sql = "SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'"
    Set Rs = Conn.Execute(sql)
        tmp = RS("text")                   
    Rs.Close
    Set Rs = Nothing
    Text = "sql: *" & sql & "*"
else
    Text = ""
end if
End Function
%>

Hvad skriver den så til dig?
Avatar billede thesurfer Nybegynder
07. august 2006 - 19:06 #6
Prøv den her kode i stedet:

<%
Function Text(Lang, TextID)
if Lang <> "" and TextID <> "" then
    dim tmp, sql
    sql = "SELECT * FROM jb_text WHERE lang = '"&Lang&"' AND textid = '"& TextID &"'"
    Set Rs = Conn.Execute(sql)
        tmp = RS("text")                   
    Rs.Close
    Set Rs = Nothing
    Text = "sql: *" & sql & "*"
else
    Text = "*Lang og TextId er tomme*"
end if
End Function
%>
Avatar billede fun22 Nybegynder
24. august 2006 - 21:55 #7
Yep det virkede.. Smider du lige et svar?
Avatar billede thesurfer Nybegynder
25. august 2006 - 08:38 #8
Yeps :-)
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