ADODBレコードセットを取得しているので、ASPClassicのnull許容列の値を確認する必要があります。 nullかどうかはどうすればわかりますか? AFAIKIsDBNullはASP Classicには存在せず、すべてのNullテスターは、オブジェクトの値ではなくnullかどうかを尋ねます。
たとえば、列RS("myCol")
を含むRecordsetRS
があります。データベースでは、myColはNULL可能ビットであるため、値は_{0, 1, NULL}
_にすることができます。
RS("myCol") = NULL
をテストするにはどうすればよいですか?文字通りその比較を実行すると、オブジェクトRS( "myCol")がNullであるかどうかだけがわかり、要求されたフィールドの値が "database" nullであるかどうかはわかりません。
これを試してください。MSSQLを使用している場合は機能するはずです。
IF IsNull(RS("myCol")) = False THEN
IF RS("myCol") THEN
Response.Write "myCol is TRUE"
ELSE
Response.Write "myCol is False"
END IF
ELSE
Response.Write "myCol is NULL"
END IF
または使用してみてください
IF RS("myCol")<>"" THEN
IF RS("myCol") THEN
Response.Write "myCol is TRUE"
ELSE
Response.Write "myCol is False"
END IF
ELSE
Response.Write "myCol is NULL"
END IF
これは私のために働きます:
Function A9000_Coalesce(SqlValue, ValueIfNull)
If VarType(SqlValue) = vbNull Then
A9000_Coalesce = ValueIfNull
Else
A9000_Coalesce = SqlValue
End If
End Function
タイプ_nullable bit
_のデータベース列myCol
の場合、その列を含むRecordset RS
には次のことが当てはまります。
RS("myCol") = Empty = False = 0
RS("myCol") = True = 1
IsNull(RS("myCol")) = True = 1
。別の解決策:
Len(RS("myCol")&"") = 5
Len(RS("myCol")&"") = 4
Len(RS("myCol")&"") = 0