/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Invalid use of Null: 'Round' ?
Fra : Jakob Munck


Dato : 24-06-03 09:22

På en af mine sites har jeg en funktion, der skal vise hvor lang en tekst,
der ligger i en db, er, når den udskrives på papir. Det foregår således:

sider = (Len(RS("tekst")) + 250)/3000
antal_sider = Round(sider, 1)

Det har, så vidt jeg ved, fungeret godt i lang tid, men er jeg begyndt (!)
at få følgende fejlmelding:

Microsoft VBScript runtime (0x800A005E)
Invalid use of Null: 'Round'

Hvad gør jeg galt?
Hvad skal laves om?

v.h.
Jakob Munck







 
 
///JJ (24-06-2003)
Kommentar
Fra : ///JJ


Dato : 24-06-03 10:23

"Jakob Munck" <jakob.munck@tdcadsl.dk> wrote in message
news:3ef809fb$0$32510$edfadb0f@dread16.news.tele.dk...
>
> sider = (Len(RS("tekst")) + 250)/3000
> antal_sider = Round(sider, 1)
>
> Microsoft VBScript runtime (0x800A005E)
> Invalid use of Null: 'Round'
>
> Hvad gør jeg galt?
> Hvad skal laves om?

Du har følgende problem:
round(sider, 1) ==> round(null, 1)

Det er matematisk ugyldigt at afrunde null, for null er ingenting :)
Af en eller anden årsag bliver "sider" sat til "null" - det kan undgåes på
forskellig måde, bl.a. i dit select statement til RS("tekst") eller på
db-niveau at forbyde null-værdier i det felt.

mvh
///JJ



Jakob Munck (24-06-2003)
Kommentar
Fra : Jakob Munck


Dato : 24-06-03 11:30

> Du har følgende problem:
> round(sider, 1) ==> round(null, 1)
>

Problemet er løst. Recordsettet var smidt ud inden det skulle beregnes, så
derfor gik det galt.

Tak for hjælpen.

v.h.
Jakob Munck



Jørn Andersen (24-06-2003)
Kommentar
Fra : Jørn Andersen


Dato : 24-06-03 12:16

On Tue, 24 Jun 2003 10:21:53 +0200, "Jakob Munck"
<jakob.munck@tdcadsl.dk> wrote:

>På en af mine sites har jeg en funktion, der skal vise hvor lang en tekst,
>der ligger i en db, er, når den udskrives på papir. Det foregår således:
>
>sider = (Len(RS("tekst")) + 250)/3000
>antal_sider = Round(sider, 1)
>
>Det har, så vidt jeg ved, fungeret godt i lang tid, men er jeg begyndt (!)
>at få følgende fejlmelding:
>
>Microsoft VBScript runtime (0x800A005E)
>Invalid use of Null: 'Round'

Hvis RS("tekst") er Null, bliver Len også Null
Hvis Len er Null, bliver summen Null
Hvis summen er nul, bliver sider Null
Hvis sider er Null, får du en fejl

>Hvad skal laves om?

Én metode er at teste inden udregning:
strTekst = RS("tekst")
If IsNull(strTekst) Then strTekst = ""
sider = (Len(strTekst) + 250)/3000
antal_sider = Round(sider, 1)

En anden (simplere) er:
sider = (Len(RS("tekst") & "") + 250)/3000
antal_sider = Round(sider, 1)

- Humlen her er, at Null opfører sig som en nul-længde-streng, når den
&'es med en anden streng, så
RS("tekst") & "" = "", hvis RS("tekst") er Null
- hvis RS("tekst") er RS("tekst") & "" = RS("tekst")


Ellers kan du sætte feltet i db'en til ikke at acceptere Null-værdier
(så skal du selvfølgelig sørge for, at der altid indsættes noget andet
- og så kan man diskutere, hvor smart det nu er ...)

Eller du kan bruge en Iif i din Sql til at gardere dig mod
Null-værdier.

Alle løsninger har deres fordele og ulemper, så: pøj-pøj

--
Jørn Andersen,
Brønshøj

///JJ (24-06-2003)
Kommentar
Fra : ///JJ


Dato : 24-06-03 12:32

"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:erbgfvs1dusi0keh1u96ji057ct7h2t0mt@4ax.com...
> On Tue, 24 Jun 2003 10:21:53 +0200, "Jakob Munck"
> <jakob.munck@tdcadsl.dk> wrote:
>
<klip>

Hej Jørn.
Han fik altså løst sit problem for 45 min siden, men du er godt nok grundig
i din besvarelse


mvh
///JJ



Jørn Andersen (24-06-2003)
Kommentar
Fra : Jørn Andersen


Dato : 24-06-03 14:34

On Tue, 24 Jun 2003 13:31:40 +0200, "///JJ" <remove@dot.com> wrote:

>Han fik altså løst sit problem for 45 min siden

- Sorry, jeg så det, da jeg havde sendt den ...

>men du er godt nok grundig i din besvarelse

Det var mest fordi jeg ikke selv kunne huske, hvilke funktioner, der
accepterer Null, og hvilke der ikke gør. Så jeg var lige en tur
omkring dokumentationen - og det skulle I ikke snydes for

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Jakob Munck (24-06-2003)
Kommentar
Fra : Jakob Munck


Dato : 24-06-03 12:39

tak, tak.

v.h.
Jakob



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408945
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste