• 【PowerShell】OledbHelper


    <#	
        .NOTES
        ===========================================================================
         Created on:   	
         Created by:   	
         Organization: 	
         Filename:     	OledbHelper
        ===========================================================================
        .DESCRIPTION
            A toolkit for OleDb.
    #>
    
    function New-OleDbConnection
    {
        <#
        .SYNOPSIS
            This functions helps you create an OleDbConnection.
    
        .PARAMETER $ConnectionString
            Database ConnecionString
        #>
        [OutputType([System.Data.OleDb.OleDbConnection])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString
        )
        
        $OleDbConnection = New-Object -TypeName System.Data.OleDb.OleDbConnection($ConnectionString)
        try
        {
            $OleDbConnection.Open()
            Write-Host 'Connected to oledb.'
            return $OleDbConnection
        }
        catch [exception]
        {
            Write-Warning ('Connect to database failed with error message:{0}' -f ,$_)
            $OleDbConnection.Dispose()
            return $null
        }
    }
    
    function Get-OleDbScalar
    {
        <#
        .SYNOPSIS
            This functions returns the execution result of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Object])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.CommandText = $Command
                return $cmd.ExecuteScalar()
            }
            catch [Exception]
            {
                Write-Warning ('Execute Sql command failed with error message:{0}' -f $_)
                return $null
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $null
    }
    
    function Get-OleDbDataTable
    {
        <#
        .SYNOPSIS
            This functions returns a DataTable of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Data.DataTable])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $dataSet = New-Object -TypeName System.Data.DataSet
            $dataAdapter = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter($Command, $OleDbConnection)
            $dataAdapter.Fill($dataSet) | Out-Null
            return $dataSet.Tables | Select-Object -First 1
        }
        return $null
    }
    
    function Get-Entities
    {
        <#
        .SYNOPSIS
            This functions returns a set of Object of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        
        .PARAMETER $Type
            System.Type
        #>
        [OutputType([System.Collections.ArrayList])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [type]$Type
        )
        
        [System.Data.DataTable]$dt = Get-OleDbDataTable -ConnectionString $ConnectionString -Command $Command
        if (($null -ne $dt) -and ($dt.Rows.Count -gt 0))
        {
            $list = New-Object -TypeName System.Collections.Generic.List[$Type]
            $props = $Type.GetProperties([System.Reflection.BindingFlags]::Public + [System.Reflection.BindingFlags]::Instance)
            foreach ($row in $dt.Rows)
            {
                $t = [System.Activator]::CreateInstance($Type);
                foreach ($item in $props)
                {
                    if (($null -ne $row[$item.Name]) -and ([System.DBNull]::Value -ne $row[$item.Name]))
                    {
                        $item.SetValue($t, $row[$item.Name], $null)
                    }
                }
                $list.Add($t)
            }
            return $list
        }
        return $null
    }
    
    function Get-OleDbDataSet
    {
        <#
        .SYNOPSIS
            This functions returns a DataSet of a set of SQL statements.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Commands
            A set of SQL statements
        #>
        [OutputType([System.Data.DataSet])]
        Param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string[]]$Commands
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $dataSet = New-Object -TypeName System.Data.DataSet
            $cmd = [System.String]::Join(";", $Commands)
            $dataAdapter = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter($cmd, $OleDbConnection)
            $dataAdapter.Fill($dataSet) | Out-Null
            return $dataSet
        }
        return $null
    }
    
    function Invoke-OleDbCommandNonQuery
    {
        <#
        .SYNOPSIS
            This functions returns the boolean of execution result of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Boolean])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.CommandText = $Command
                $cmd.ExecuteNonQuery() | Out-Null
                return $true
            }
            catch [Exception]
            {
                Write-Warning ('Execute Sql command failed with error message:{0}' -f $_)
                return $false
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $false
    }
    
    function Invoke-OleDbCommandsNonQuery
    {
        <#
        .SYNOPSIS
            This functions returns the boolean of execution result of a set of SQL statements.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Commands
            A set of SQL statements
        #>
        [OutputType([System.Boolean])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string[]]$Commands
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $transaction = $OleDbConnection.BeginTransaction()
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.Transaction = $transaction
                foreach ($item in $Commands)
                {
                    $cmd.CommandText = $item
                    $cmd.ExecuteNonQuery()
                }
                $transaction.Commit()
                return $true
            }
            catch [Exception]
            {
                $transaction.Rollback()
                Write-Warning ('Execute Sql commands failed with error message:{0}' -f $_)
                return $false
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $false
    }
    
    
  • 相关阅读:
    linux driver ------ 交叉工具链(cross toolchain)
    Qt ------ 截图、获取鼠标指定的RGB值
    Qt ------ QWidget 自定义子类使用信号与槽(Q_OBJECT)后 stylesheet 失效
    Qt error ------ incomplete type 'QApplication' used in nested name specifier
    Qt ------ Q_UNUSED
    SpringCloud 组件Eureka参数配置项详解
    过滤器(Filter)与拦截器(Interceptor)的区别
    事务隔离级别
    事务四大特性
    get与post的区别
  • 原文地址:https://www.cnblogs.com/zhuzhongxing/p/14147078.html
Copyright © 2020-2023  润新知