|
| Invalid use of Null: 'Replace' Fra : Michael Tillgaard |
Dato : 12-03-10 19:44 |
|
Jeg bruger nedenstående til at indsætte linjeskift fra db'en
<%
Function replaceSpecialChars(ByVal strText)
Dim strTemp
strTemp = Replace(strText,"'","'")
strTemp = Replace(strTemp,"&","&")
strTemp = Replace(strTemp,vbcrlf,"<br>")
replaceSpecialChars = strTemp
End Function
%>
<% = replaceSpecialChars(Indhold) %>
Men når feltet er tomt i db'en får jeg følgende fejl:
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'Replace'
Hvordan undgår jeg det?
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Rune Jensen (12-03-2010)
| Kommentar Fra : Rune Jensen |
Dato : 12-03-10 20:18 |
|
Den 12-03-2010 19:44, Michael Tillgaard skrev:
> Jeg bruger nedenstående til at indsætte linjeskift fra db'en
> <%
> Function replaceSpecialChars(ByVal strText)
> Dim strTemp
> strTemp = Replace(strText,"'","'")
> strTemp = Replace(strTemp,"&","&")
> strTemp = Replace(strTemp,vbcrlf,"<br>")
> replaceSpecialChars = strTemp
> End Function
> %>
> <% = replaceSpecialChars(Indhold) %>
> Men når feltet er tomt i db'en får jeg følgende fejl:
> Microsoft VBScript runtime error '800a005e'
> Invalid use of Null: 'Replace'
> Hvordan undgår jeg det?
Prøv strText = Trim( strText + " ")
allerføsrt i function
Så fåe din textstreng værdien tom. Vær opmærksom på, der kan opleves
forskel senere, fordi tomt og ingenting ikke er det samme (som jeg har
forstået det). Ligeledes, så vil dette fjerne evt. white-spaces før og
efter eft- tekst i strengen.
Dette virker for så vidt selve funktionen. Jeg ville dog - måske - have
det noget før, på selve de variable, som bruges i selve kaldet til
funktionen. Det er én af måderne at "sanitize" sine variable.
MVH
Rune Jensen
| |
Stig Johansen (12-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 12-03-10 20:24 |
|
Michael Tillgaard wrote:
> Jeg bruger nedenstående til at indsætte linjeskift fra db'en
> <%
> Function replaceSpecialChars(ByVal strText)
If Isnull(strtext)
replaceSpecialChars=""
End function
end if
.....
> Hvordan undgår jeg det?
--
Med venlig hilsen
Stig Johansen
| |
Rune Jensen (12-03-2010)
| Kommentar Fra : Rune Jensen |
Dato : 12-03-10 20:42 |
|
Den 12-03-2010 20:23, Stig Johansen skrev:
> Michael Tillgaard wrote:
>
>> Jeg bruger nedenstående til at indsætte linjeskift fra db'en
>> <%
>> Function replaceSpecialChars(ByVal strText)
> If Isnull(strtext)
> replaceSpecialChars=""
> End function
> end if
> ....
>
>> Hvordan undgår jeg det?
Det er en god idé, men er isNull altid sikker at bruge?
Jeg tænkte på noget a la
Function replaceSpecialChars(ByVal strText)
Dim strTemp
strTemp = ""
if Len( strText) >0 then
strTemp = Replace(strText,"'","'")
strTemp = Replace(strTemp,"&","&")
strTemp = Replace(strTemp,vbcrlf,"<br>")
end if
replaceSpecialChars = strTemp
End Function
?
MVH
Rune Jensen
| |
Stig Johansen (12-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 12-03-10 21:49 |
|
Rune Jensen wrote:
> Det er en god idé, men er isNull altid sikker at bruge?
Hvad mener du med sikker?
Enten er den null, eller også er den ikke.
> Jeg tænkte på noget a la
>
> Function replaceSpecialChars(ByVal strText)
>
> Dim strTemp
> strTemp = ""
>
> if Len( strText) >0 then
Sådan kan man måske også gøre det, men ellers
.....
if not isnull(strtext) then
.....
I visse sprog vil en len(strtext) fejle hvis strtext er null.
--
Med venlig hilsen
Stig Johansen
| |
Rune Jensen (13-03-2010)
| Kommentar Fra : Rune Jensen |
Dato : 13-03-10 00:26 |
|
Den 12-03-2010 21:48, Stig Johansen skrev:
> Rune Jensen wrote:
>
>> Det er en god idé, men er isNull altid sikker at bruge?
>
> Hvad mener du med sikker?
At man ikke altid kan regne med, at den er hvad man tror.
Jeg er ikke den store ekspert, men jeg har fundet nogle links:
http://bytes.com/topic/asp-classic/answers/53790-isnull-bug-asp
Siger mig ikke meget om selve problemet, andet end ordene "much safer"
dem forstår jeg selvfølgelig.
MVH
Rune Jensen
| |
|
|