Manual for library “Database”¶
In this article:
SIM.Tools.Database¶
The SIM.Tools.Database class is used easily handle database actions to MSSQL servers.
Example with ConfigMgr:
$Assembly = [Reflection.Assembly]::LoadFile("$PSScriptRoot\Base.dll")
$Assembly = [Reflection.Assembly]::LoadFile("$PSScriptRoot\System.Data.SqlClient.dll")
$Assembly = [Reflection.Assembly]::LoadFile("$PSScriptRoot\Database.dll")
$Assembly = [Reflection.Assembly]::LoadFile("$PSScriptRoot\ConfigMgr.dll")
$ConfigMgrConnectionSettings = New-Object SIM.ConfigMgr.ConnectionSettings
$ConfigMgrConnectionSettings.WMIHostName = 'localhost'
$ConfigMgrConnectionSettings.SiteCode = 'SIM'
$ConfigMgrConnectionSettings.SQLHostname = $ConfigMgrConnectionSettings.WMIHostName;
$ConfigMgrConnection = New-Object SIM.ConfigMgr.Connection($ConfigMgrConnectionSettings)
$res = New-Object Base.Result("Starting ConfigMgr script...")
$res.ChildAdd($ConfigMgrConnection.Connect())
if ($res.Successful -eq $true)
{
# **************************************
# Create new instance of Database with
# (A) an existing SQLConnection object
# (B) with a path to the SIMV61 Config file: $SIM_DB = New-Object SIM.Tools.Database("C:\SilverMonkey\v61\Config.xml")
# (C) with a connection string: $SIM_DB = New-Object SIM.Tools.Database("data source = server1,1433; initial catalog = DB1; integrated security = True; MultipleActiveResultSets=True;App=EntityFramework", $true)
# **************************************
$SIM_DB = New-Object SIM.Tools.Database($ConfigMgrConnection.SQLConnection)
# **************************************
# EXAMPLE with single row return:
# **************************************
$row = $SIM_DB.SQLQueryFirstRow("SELECT * FROM [v_CollectionRuleDirect] WHERE [ResourceType] = 5")
$row['RuleName']
# **************************************
# EXAMPLE with multiple rows (in a table) return:
# **************************************
$table = $SIM_DB.SQLQueryAll("SELECT * FROM [v_CollectionRuleDirect] WHERE [ResourceType] = 5")
if ($table.Rows.Count -gt 0)
{
Foreach ($Row in $table)
{
$Row['RuleName']
}
}
# **************************************
# EXAMPLE to fire a command:
# **************************************
$intReturn = $SIM_DB.SQLCommand("use testdb; create table testtable(bla varchar(10));")
"Affected items: $intReturn"
}
$res.Dump()