2017-04-25 4 views
-1

種類の不一致エラーを返し、私の従来のASPアプリケーションの私のサーバー側のASPコードです:他の呼び出しをwherasASPレン()関数は、以下

Function isValidPACSSession() 
... 
Dim sessionID : sessionID = Request.QueryString("forSessionID") 
isValidPACSSession = SessionID2PACSUserID(sessionID) 
... 
End Function 

Function SessionID2PACSUserID(sSessionID) 
if (Not IsNull(sSessionID) AND Len(sSessionID) > 0) then 
      ...it fails here at the Len function. 
     else 
      ... 
     end if 
End Function 

レン()関数は、このpartcular例えば、「型が一致しません」エラーがスローされ、他のコンポーネントがSessionID2PACSUserID()に行ったことは問題ありません。助けてください。

+0

'Request.QueryString(" forSessionID ")'がnullの場合、この小さなトリックではないことを確認します。 'sessionID = Request.QueryString(" forSessionID ")&" "'または 'Len(sSessionID) &* ")*(私の変数を設定するときに個人的に好む)*。より大きな質問は、sessionIDをクエリ文字列として渡す理由ですか? – Lankymart

+0

[ASPのクラシックでIs not IsNullの可能な重複](http://stackoverflow.com/questions/33254463/if-not-isnull-in-asp-classic) – Lankymart

+0

これはプローブです、私はデバッガをチェックしました リクエスト.QueryString( "forSessionID")は、String型の "F50DAA7A37494A51A0A157D917FACF891129"の値を持ちます。それでもlen()関数は型の不一致エラーをスローします。 –

答えて

0

解決策が見つかりました。実際には、len()が失敗する原因となっていたcalleのWebページにある "len"という名前のローカル変数がありました。 lenの変数名をnLengthに変更し、Len()が正常に動作するようになりました。

0

あなただけのような、なぜ何かをしないで、値が存在するかどうかを確認しようとしているように見える:私も、従来のASPと非常によく機能していないVSデバッガの上記のステートメントに同意

dim sessionLength : sessionLength = 0 
if (Not IsNull(sSessionID) AND sSessionID <> "") then 
    sessionLength = Len(sSessionID) 

+0

ありがとうございます。しかし、私はまた、DBクエリpurpsoseのためにそれを使用するために文字列の長さが必要です。 –

+0

は私の答えを潜在的な回避策で更新しました –

関連する問題