webForumDet fria alternativet

Subb-problem

4 svar · 323 visningar · startad av saw

sawMedlem sedan mars 20011 883 inlägg
#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

SannyWMedlem sedan jan. 2003447 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...

K@llenMedlem sedan mars 20032 654 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
cyprysMedlem sedan dec. 20003 105 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
sawMedlem sedan mars 20011 883 inlägg
#5

Helt underbart, tack för all hjälp

Genererad på 366 ms · cache AV · v20260730165559-full.f96bc7eb