webForumDet fria alternativet

Subb-problem

ASP

4 svar · 325 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag kom på mig själv att jag skrev för mycket upprepande kod:

if Session("E") > 2 then
     CALL MakeResRecordSet(connection,1)
end if

Det ser inte mycket ut här, men det rör sig om 14 upprepningar
på en sida.
Jag försöker då att skapa en sub-rutin, för att bli lite effektivare:

Sub MakeCheck(sCheck,sOperator,sNumb)

if CInt(sCheck) & sOperator & CInt(sNumb) then
	CALL MakeResRecordSet(connection,1)
end if
'response.write CInt(sCheck) & " " & sOperator & " " & CInt(sNumb)
End SUb

Jag får ett error här:

Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: '[string: "8>2"]'

...men om jag skriver ut det med response.write ( den bort-
markerade raden) då är allt med.

Några tips om hur jag kan fixa detta?
:stud

Medlem sedan jan. 2003438 inlägg
#2

Vad vill du göra med detta:

CInt(sCheck) & sOperator & CInt(sNumb)

Måste du inte ha detta mot någon typ av värde? Typ if not CInt(sCheck) = "" osv...

Medlem sedan mars 20032 667 inlägg
#3

Nu går jag bara på ditt felmeddelande som fellösning. Ny kod:

if cInt(Session("E")) > 2 then
     CALL MakeResRecordSet(connection,1)
end if
Medlem sedan dec. 20003 563 inlägg
#4

Vad du gör är att försöka sätta strängen "<" till operanden < vilket inte är möjligt. Det du får göra är t.ex. en select case i subben.

Sub MakeCheck(sCheck,sOperator,sNumb)
 select case sOperator
  case "=" : if sCheck = sNumb then call MakeResRecordSet(connection,1)
  case ">" : if sCheck > sNumb then call MakeResRecordSet(connection,1)
  case "<" : if sCheck < sNumb then call MakeResRecordSet(connection,1)
 end select
end sub
Medlem sedan mars 20011 880 inlägg
#5

Helt underbart, tack för all hjälp

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)