webForumDet fria alternativet

Inkompatibla typer: 'clng'

ASP

4 svar · 381 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

:)

Jag har ett script som läser läser informatione från en textfil och stoppar in den i en databas.

Jag använder fäljande kod för att plocka ut infon:

iPrice = cLng(Trim(Mid(sLine, iPriceStart, iPriceLength)))

Problemet är om textraden är "tom"

Får då följande meddelande:

Körningsfel i Microsoft VBScript fel '800a000d'

Inkompatibla typer: 'clng'

/articles/addArticle.asp, rad 170

Felmeddealndet får jag ju för att jag inte kan köra clng på en tom variabel...

Hur kan jag göra för att undvika detta?

Provade med:

					If iPrice = "" then
						iPrice = 0
					Else
						iPrice = cLng(Trim(Mid(sLine, iPriceStart, iPriceLength)))
					End If

Men det fungerade ju inte...

Jag vill ju att det ska skrivas 0 (noll) till databasen om det sakans ett pris i textfilen...

Mvh
Henrik

Medlem sedan maj 200010 687 inlägg
#2

Trevlig funktion att använda sig av:

'i din util fil
Function Coalesce(Value1, Value2)
	If Trim(Value1 & "") <> "" Then
		Coalesce = Value1
	ElseIf Trim(Value2 & "") <> "" Then
		Coalesce = Value2
	End If
End Function

'i din kod
lPrice = CLng( Coalesce(Mid(sLine, lPriceStart, lPriceLength), 0) )
Medlem sedan jan. 20013 582 inlägg
#3

Det var ju en liten fin funktion... Den kan nog användas till mycket! :)

Tack för hjälpen!

Mvh
Henrik

Medlem sedan maj 200010 687 inlägg
#4

Japp, använder den dagligen. :)

Medlem sedan jan. 20013 582 inlägg
#5

Jag sparar den i min "bra-script-mapp" ;)

//Henrik

269 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)