sql >> データベース >  >> RDS >> Oracle

aspクラシックOracleリンクサーバーに接続するときにエラーをトラップする方法

    私はこのコードを使用する傾向があります...

    'GetDataSet error columns...
    const C_ERROR               = "ERROR"               'Used when an error is generated - to be fed to the comsuming routine
    const C_NO_DATA             = "NO_DATA"             'Used when no data is returned to a consuming routine
    const C_COL_IDENTIFIER      = 0
    const C_COL_ERROR_ID        = 1
    const C_COL_ERROR_MESSAGE   = 2
    const C_COL_SQL             = 3
    const C_COL_CONNECTION      = 4
    
    'GetDataSet
    '   Returns a table of data based on the supplied SQL statement and connection string.
    'Parameters:
    '   sqlString (string) - The SQL string to be sent.
    '   connString (string) - The database connection string.
    'Usage:
    '   dataSet = GetDataSet(sqlString, connString)
    'Description:
    '   This function generates a table of information in a 2 dimensional array.  The first dimension represents the columns
    '   and the second the rows.  If an error occurs while the routine is executing the array and the base index (0,0) is set 
    '   to C_ERROR, (0,1) to the VBScript error index, and (0,2) to the VBScript error description.
    function GetDataSet(sqlString, connString)
        'Initialise...
        dim returnVal, rsData
        on error resume next
            'Define and open the recordset object...
            set rsData = Server.CreateObject("ADODB.RecordSet")
            rsData.Open sqlString, connString, 0, 1, 1
            'Initialise an empty value for the containing array...
            redim returnVal(0,0)
            returnVal(0,0) = C_NO_DATA
            'Deal with any errors...
            if not rsData.EOF and not rsData.BOF then
                'Store the data...
                returnVal = rsData.GetRows()
                select case err.number
                    case 3021   'No data returned
                        'Do nothing as the initial value will still exist (C_NO_DATA)
                    case 0      'No error
                        'Do nothing as data has been returned
                    case else
                        redim returnVal(4,0)
                        returnVal(C_COL_IDENTIFIER,0) = C_ERROR
                        returnVal(C_COL_ERROR_ID,0) = err.number
                        returnVal(C_COL_ERROR_MESSAGE,0) = err.description
                        returnVal(C_COL_SQL,0) = sqlString
                        returnVal(C_COL_CONNECTION,0) = connString
                end select
            end if
            'Tidy up...
            rsData.close
            set rsData = nothing
        on error goto 0
        'Return the array...
        GetDataSet = returnVal
    end function
    

    私のデータセットを取得します。好きなように男性が処理できる配列(えーと...女性が処理しますか?)を返します。

    エラーが発生した場合、詳細は配列の適切な要素に返されます。




    1. M1 Mac(ARM64)にSQLServerをインストールする方法

    2. 別のテーブルに基づくMySQLSELECTSUM

    3. ORA-00913:ケースを使用しているときに値が多すぎます

    4. ログなしでSQLのテーブルの大きなデータを削除するにはどうすればよいですか?