#######################################
# Skrypt PowerShella
# (C) dr Holger Schwichtenberg
# http://www.powershell-doktor.de
########################################

# Parametry
$DOSTAWCA = "System.Data.SqlClient"
$CIĄGPOŁĄCZENIA = "Data Source=.\SQLEXPRESS;AttachDbFileName=c:\demo\WPS\B_BazyDanych\sqlexpress\BazaKont.mdf;Integrated Security=True;"
$SQL1 = "Select count(*) from konta"
$SQL2 = "insert into konta ( imię, nazwisko) values ('Jan', 'Kowalski')"
$SQL3 = "delete from konta where nazwisko='Kowalski'"

# Tworzenie fabryki
$dostawca = [System.Data.Common.DbProviderFactories]::GetFactory($DOSTAWCA)

# Tworzenie obiektu połączenia
$conn = $dostawca.CreateConnection()
$conn.ConnectionString = $CIĄGPOŁĄCZENIA

# Otwieranie połączenia
$conn.Open();
"Stan bazy danych: " + $conn.State

# definiowanie polecenia #1
[System.Data.Common.DbCommand] $cmd1 = $dostawca.CreateCommand()
$cmd1.CommandText = $SQL1
$cmd1.Connection = $conn
# wykonywanie polecenia #1
$e = $counter = $cmd1.ExecuteScalar()
"Liczba rekordów przed INSERT: " + $Counter

# tworzenie polecenia #2 (INSERT)
[System.Data.Common.DbCommand] $cmd2 = $dostawca.CreateCommand()
$cmd2.CommandText = $SQL2
$cmd2.Connection = $conn
# wykonywanie polecenia #2
$e = $cmd2.ExecuteNonQuery()

# wykonywanie polecenia #1
$counter = $cmd1.ExecuteScalar()
"Liczba rekordów po INSERT: " + $Counter

# tworzenie polecenia #3 (DELETE)
[System.Data.Common.DbCommand] $cmd3 = $dostawca.CreateCommand()
$cmd3.CommandText = $SQL3
$cmd3.Connection = $conn
# wykonywanie polecenia #2
$e = $cmd3.ExecuteNonQuery()

# wykonywanie polecenia #1
$counter = $cmd1.ExecuteScalar()
"Liczba rekordów po DELETE: " + $Counter

# Zamykanie bazy danych
$Conn.Close()
"Stan bazy danych: " + $conn.State

