Код Visual Basic Code для хранимой процедуры CLR
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlServer
Imports System.Data.SqlTypes
Imports System.IO

Partial Public Class StoredProcedures
    Public Shared Sub clr_FixedDrives()
            ? Get the SQL Pipe context for stored procedure execution.
            Dim oSqlPipe As SqlPipe
            oSqlPipe = SqlContext.GetPipe()

            ? Creating the MetaData / Column definition we?re going to send back.
            Dim metadata(1) As SqlMetaData
            metadata(0) = New SqlMetaData(«drive», SqlDbType.Char, 1)
            metadata(1) = New SqlMetaData(«MB free», SqlDbType.BigInt)

            Dim oRecord As New SqlDataRecord(metadata)
            oSqlPipe.SendResultsStart(oRecord, False)

            Dim oDvInfo As DriveInfo
            For Each oDvInfo In DriveInfo.GetDrives()
                If oDvInfo.DriveType = DriveType.Fixed And oDvInfo.IsReady Then
                    oRecord.SetString(0, oDvInfo.Name.Substring(0, 1))
                    oRecord.SetInt64(1, oDvInfo.TotalFreeSpace / 1048576)
                End If


        Catch e As Exception
            Throw New Exception(«Error executing clr_FixedDrives.», e)
        End Try
        ? Other properties we can get include
        ?oDvInfo.TotalSize, and
    End Sub

End Class

Поделитесь материалом с коллегами и друзьями