26. oktober 2005 - 20:14Der er
12 kommentarer og 1 løsning
Hjlæp til funktion
Hej Jeg har brug for hjælp til en funktion. problemet er at jeg har en database med en tabel som indeholder tekster på forskellige sprog
felterne er: label_id som kunne være "brugerID" label_lang som kunne være "da" for dansk label_trans som kunne være "Brugernavn:"
Det jeg så gerne vil er at når jeg i min kode skriver trans_funktion(brugerID)
Så fik jeg retuneret "Brugernavn:"
jeg har selv lavet følgende (og jeg ved godt at det ikke virker)
function trans_funktion (tekst) SQLtrans ="SELECT label_trans from label where label_lang = 'da' and label_id ='"& Tekst &"'" Conn.Execute (SQLtrans) Set rs = conn.Execute(SQLtrans) End function
function trans_funktion (tekst) SQLtrans ="SELECT label_trans from label where label_lang = 'da' and label_id ='"& Tekst &"'" Set rs = conn.Execute(SQLtrans) trans_funktion = rs("label_trans") rs.close End function
Jeg ville foreslå at funktionen blev suppleret med en fallback-værdi hvis den søgte værdi ikke kunne findes i databasen:
Function trans_funktion (tekst) SQLtrans = "SELECT label_trans FROM label WHERE label_lang = 'da' AND label_id = '"& Tekst &"'" Set rs = conn.Execute(SQLtrans)
If Not rs.EOF Then trans_funktion = rs("label_trans") Else trans_funktion = tekst End If
rs.close End Function
I øvrigt kunne man også overveje om sproget ikke skulle indgå som en paramaetre:
Function trans_funktion (lang, tekst) SQLtrans = "SELECT label_trans FROM label WHERE label_lang = '" & lang & "' AND label_id = '"& Tekst &"'" Set rs = conn.Execute(SQLtrans)
If Not rs.EOF Then trans_funktion = rs("label_trans") Else trans_funktion = tekst End If
nielle> der er også det jeg har lavet, dog henter jeg brugerens sprog fra en Session og skulle der ikke findes en label_trans så skriver jeg en fejl tekst men så ingen grund til at indskrive det i spørgsmålet, da det var noget af det jeg selv kunne finde ud af :-) men elles tak for et godt råd
MEN jeg forstår ikke helt Function trans_funktion (lang, tekst) hvordan kalder jeg 2 værdier? det kunne da være at det var lidt mere smart end det jeg er igang med.
Hvis du har dit sprog i en Session så er der ikke nogen speciel grund til at inkludere det som et argument til funktionen; Så kan du bare trække det ud inden i den.
Der er dog en skole inden for programmering, som mener at det er dårligt at trække på globale variable (f.eks. session's) inde fra en funktion, og at alle data en funktion skal bruge bør suppleres som argumenter.
nielle> jeg er grundlæggende enig med dig i at brugen af Session ikke er så godt, og slet ikke som det har været ! min baggruind for at skrive dette er at jeg har haft store problemer med brugen af Session det sidste års tid, det virker som om web-serveren taber den altså så den er tom dette sker nogen gange inden for minuter og andre gange efter 20 min (som normalt), nå men mine programmer der anvender Session går jo i ged hvis en Session er tom
Det jeg gør nu er at jeg lavet en cookie og sætter min Session= min cookie så jeg altid kan hente min cookie hvis min Session er tom..... åhhhh kan man forstå det ?
Kender i problemet med at ens Session bliver tømt, hvis ja hvordan løser i så problemet?
Jeg sagde nu intet om at Sessions skulle være noget dårligt noget. Det jeg nævnte var at det - programmeringsmæssigt - ikke er særligt kønt at liste ekstra argumenter ind i en funktion via bagvejen; Altså f.eks. i form af globale variable.
Nej, desværre kender jeg ikke nogen løsning på Sessions, som pludseligt tabes. Forresten kan du sætte din Session-timeout op i forhold til de 20 minutter som er default:
jeg kender godt Session.Timeout men problemet er bare at det ikke hjælper ! Efter hvad jeg har fundet ud af så opstår problemet hvis serveren er en win2003
Synes godt om
Ny brugerNybegynder
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.