2

この関数を作成しましたが、問題があるようです。Webサイト全体で辞書にアクセスできるように、辞書をSession変数に格納したいと思います。Object required:DictionaryObjectというエラーが表示され続けるか、このキーはすでに辞書に存在します。誰かが私が間違っていることを教えてもらえますか?

私はこの投稿でセッション中に辞書を保存するように見えましたが、私がやろうとしていることに本当に合いませんでした!

Function LoadPermissions()

    Dim SQLString
    SQLString ="SELECT datafields here... FROM " & TBL_employees_permissions & " AS p WHERE p.eid = '" & Clng(12) & "';"

    If IsObject(Session("dicPermissions")) = True Then
        Set dicPermissions = Session("dicPermissions")
    Else
        Set dicPermissions = Server.CreateObject("Scripting.Dictionary")
    End If

    db_conn conn, rs '
    Set myRS = conn.Execute (SQLString) 

    For each item in myRS.Fields
        If IsObject(Session("dicPermissions")) = True AND DictionaryObject.Exists(Trim(item.Name)) = False Then
            dicPermissions.Add Trim(item.Name), Trim(myRS(item.Name))
        End If
    Next
    db_disconn conn, rs

    Set Session("dicPermissions") = dicPermissions 'Store Dictionary to session array.

End Function
4

1 に答える 1

2

私はそれを機能させることができました、そしてここに私がしたことはありますか? 誰かが何か問題を見つけた場合、またはエラー トラップを追加する必要がある場合。これは、ユーザーのログイン時に 1 回読み込まれます。

Dim SQL文字列

    SQLString ="SELECT Datefields here... & " AS p WHERE p.eid = '" & Clng(12) & "';"

    'Create the dictionary object.
    Set Session("dicPermissions") = Server.CreateObject("Scripting.Dictionary") 'Create the Dictionary object.

    'sets up a connection to the database
    db_conn conn, rs 'Open account table.
    Set myRS = conn.Execute (SQLString) ' Uses any ADODB connection

    For each item in myRS.Fields 'Create the dictionary with the field names and cell data.
            'dicPermissions.Add fieldname, feild value
            Session("dicPermissions").Add Trim(item.Name), Trim(myRS(item.Name))
    Next
    db_disconn conn, rs 'Close the database

次のようにアクセスできます。

Response.write Session("dicPermissions").Item("itemnamehere...")
于 2012-09-03T06:48:22.977 に答える