Compare commits

...
10 Commits
29 changed files with 923 additions and 3 deletions
+42
View File
@@ -0,0 +1,42 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
create_table="""
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbl_customers_from_csv_bulk_insert]') AND type in (N'U'))
begin
create table [dbo].[tbl_customers_from_csv_bulk_insert](
id int not null,
code varchar(50) null,
first_name varchar(50) null,
last_name varchar(50) null,
)
end;
"""
cursor.execute(create_table)
connection.commit()
bulk_insert_cmd="""
bulk insert tbl_customers_from_csv_bulk_insert
from 'C:\\Users\\bl.SEV\\repos\\python-mssql\\advanced-topics\\csv\\sample-csv-file-for-bulk-insert-demo.csv'
with
(
fieldterminator = ';',
rowterminator = '\n'
);
"""
cursor.execute(bulk_insert_cmd)
connection.commit()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
@@ -0,0 +1,41 @@
import subprocess
import os
sql_instance = "."
sql_database = "master"
folder_to_check = "./sql_scripts/"
def run_ps_command(cmd):
# Build the PowerShell invocation list
command = [
"PowerShell",
"-ExecutionPolicy", "Unrestricted",
"-Command", cmd
]
result = subprocess.run(
command,
capture_output=True,
text=True
)
return result
for file in os.listdir(folder_to_check):
if file.endswith(".sql"):
full_path = os.path.join(folder_to_check, file)
print(f"executing .sql file: {full_path}")
sql_command = (
f"Invoke-Sqlcmd -ServerInstance {sql_instance} "
f"-Database {sql_database} -InputFile \"{full_path}\""
)
result = run_ps_command(sql_command)
if result.returncode != 0:
print("Error executing script:")
print(result.stderr.strip())
else:
if result.stdout:
print("Output:")
print(result.stdout.strip())
+45
View File
@@ -0,0 +1,45 @@
import tkinter
import pyodbc
sql_server_ver = "Not Available"
root = tkinter.Tk()
root.geometry("600x400")
root.title("Sample Python GUI App")
label_hello_world = tkinter.Label(root, text=str(sql_server_ver), fg="red")
def sql_server_version():
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
cursor.execute("select @@VERSION as version")
while 1:
row = cursor.fetchone()
if not row:
break
sql_server_ver = row.version
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
label_hello_world.config(text=str(sql_server_ver))
label_hello_world.pack()
btn_sql_server_version = tkinter.Button(root, command=sql_server_version, text="Retrieve SQL Server Version")
btn_sql_server_version.pack(side=tkinter.TOP, pady=50)
root.mainloop()
@@ -0,0 +1,5 @@
1;customer1;fistName1;lastName1
2;customer2;fistName2;lastName2
3;customer3;fistName3;lastName3
4;customer4;fistName4;lastName4
5;customer5;fistName5;lastName5
1 1 customer1 fistName1 lastName1
2 2 customer2 fistName2 lastName2
3 3 customer3 fistName3 lastName3
4 4 customer4 fistName4 lastName4
5 5 customer5 fistName5 lastName5
@@ -0,0 +1,5 @@
1;customer1;fistName1;lastName1
2;customer2;fistName2;lastName2
3;customer3;fistName3;lastName3
4;customer4;fistName4;lastName4
5;customer5;fistName5;lastName5
1 1 customer1 fistName1 lastName1
2 2 customer2 fistName2 lastName2
3 3 customer3 fistName3 lastName3
4 4 customer4 fistName4 lastName4
5 5 customer5 fistName5 lastName5
@@ -0,0 +1,23 @@
/*
* Created for the online course on Udemy: "Working with Python® on Windows® and SQL Server® Databases"
*
* Course URL:
* https://www.udemy.com/course/python-windows-sql-server
*
* Author/Instructor: Artemakis Artemiou
*
* Disclaimer: This SQL script which is part of the online course on Udemy "Working with Python® on Windows®
* and SQL Server® Databasess", is intended to be used only for demo purposes. Do not
* use it for Production systems as it is simplified for demo purposes.
*/
create database SampleDB2022_1a;
go
use SampleDB2022_1a;
go
create table tblSample1a(
id int,
code varchar(50));
go
@@ -0,0 +1,27 @@
/*
* Created for the online course on Udemy: "Working with Python® on Windows® and SQL Server® Databases"
*
* Course URL:
* https://www.udemy.com/course/python-windows-sql-server
*
* Author/Instructor: Artemakis Artemiou
*
* Disclaimer: This SQL script which is part of the online course on Udemy "Working with Python® on Windows®
* and SQL Server® Databasess", is intended to be used only for demo purposes. Do not
* use it for Production systems as it is simplified for demo purposes.
*/
use SampleDB2022_1a;
go
insert into tblSample1a
values (1,'test1'), (2,'test2');
create table tblSample1b(
id int,
code varchar(50));
go
insert into tblSample1b
values (1,'test1'), (2,'test2');
go
@@ -0,0 +1,27 @@
/*
* Created for the online course on Udemy: "Working with Python® on Windows® and SQL Server® Databases"
*
* Course URL:
* https://www.udemy.com/course/python-windows-sql-server
*
* Author/Instructor: Artemakis Artemiou
*
* Disclaimer: This SQL script which is part of the online course on Udemy "Working with Python® on Windows®
* and SQL Server® Databasess", is intended to be used only for demo purposes. Do not
* use it for Production systems as it is simplified for demo purposes.
*/
create database SampleDB2022_1b;
go
use SampleDB2022_1b;
go
create table tblSample1a(
id int,
code varchar(50));
create table tblSample1b(
id int,
code varchar(50));
go
+71
View File
@@ -0,0 +1,71 @@
import pyodbc
import csv
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("[creating table tbl_customers_from_csv...]")
create_table="""IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbl_customers_from_csv]') AND type in (N'U'))
begin
create table [dbo].[tbl_customers_from_csv] (
id int not null,
code varchar(50) null,
first_name varchar(50) null,
last_name varchar(50) null,
)
end;
"""
cursor.execute(create_table)
connection.commit()
print("[selecting from table before csv insert...]")
cursor.execute("select * from tbl_customers_from_csv")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.first_name, row.last_name)
print()
# read csv file and insert each row into table in sql server
print("[reading csv file and insert new rows into sql server table...]")
with open("./csv/sample-csv-file-for-demo.csv", newline='') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';', quotechar='|')
for row in csv_reader:
prm_id=row[0]
prm_code=row[1]
prm_first_name=row[2]
prm_last_name=row[3]
print("inserting record:",', '.join(row))
cursor.execute("insert into dbo.tbl_customers_from_csv values (?,?,?,?)", prm_id, prm_code, prm_first_name, prm_last_name)
connection.commit()
print()
print("[select table after inserts...]")
cursor.execute("select * from tbl_customers_from_csv")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.first_name, row.last_name)
print()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,43 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("select before deleteing...")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.execute("delete from tblCustomers where id = 2")
connection.commit()
print("select after deleting")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,44 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("select before deleteing...")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
prm_code = "code6"
cursor.execute("delete from tblCustomers where code = ?", prm_code)
connection.commit()
print("select after deleting")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,45 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("")
print("select statement before insert")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
print("inserting into tblCustomers...")
cursor.execute("insert into tblCustomers values (6, 'code6', 'firstName6', 'lastName6')")
connection.commit()
print("select statement after insert")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,46 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("")
print("select statement before insert")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
prm_id = 7
prm_code = "code7"
prm_first_name = "firstName7"
prm_last_name = "lastName7"
print("inserting into tblCustomers...")
cursor.execute("insert into tblCustomers values (?, ?, ?, ?)", prm_id, prm_code, prm_first_name, prm_last_name)
connection.commit()
print("select statement after insert")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,58 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
# wuery 1
print("counting all records in table...")
cursor.execute("select count(*) as total_records from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.total_records)
print("--- next query ----")
# query 2
print("fetching server name...")
cursor.execute("select @@SERVERNAME as server_name")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.server_name)
print("--- next query ----")
# query 3
print("some DMV stuff...")
cursor.execute("select top 10 wait_type, wait_time_ms from sys.dm_os_wait_stats where wait_time_ms > 5 order by wait_time_ms desc")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.wait_type, row.wait_time_ms)
print("--- no more queries ... ----")
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,35 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
prmID = 5
cursor.execute("select * from tblCustomers where id = ?",prmID)
print("[Query results...]")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ", ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,39 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("select table before updating")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.execute("update tblCustomers set lastName = 'lastName New 5' where id = 5")
connection.commit()
print("table after updating")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,40 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
print("select table before updating")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
prm_id = 7
cursor.execute("update tblCustomers set lastName = 'lastName New 7' where id = ?", prm_id)
connection.commit()
print("table after updating")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
+37
View File
@@ -0,0 +1,37 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
sql_cmd="select dbo.ufn_get_cus_code(?) as cus_code"
prm_id=4
cursor.execute(sql_cmd,prm_id)
print("using udf to retrieve cus code...")
while 1:
row = cursor.fetchone()
if not row:
break
print("Customer code for id ", prm_id, " - ", row.cus_code)
print()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
+54
View File
@@ -0,0 +1,54 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
cursor.execute("select HOST_NAME() as host_name")
print("[system function 1 - host_name results...]")
while 1:
row = cursor.fetchone()
if not row:
break
print("host name:",row.host_name)
print()
cursor.execute("select DB_NAME() as current_db_name")
print("[system function 2 - current database results...]")
while 1:
row = cursor.fetchone()
if not row:
break
print("current database name:", row.current_db_name)
print()
# sys func 3
prm_is_numeric = "202424"
cursor.execute("select ISNUMERIC(?) as is_numeric_value", prm_is_numeric)
print("[System function 3 - is numeric...]")
while 1:
row = cursor.fetchone()
if not row:
break
print("checking to see if param", prm_is_numeric, "is numeric. check resutl (0 / false, 1 / true):", row.is_numeric_value)
print()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
+38
View File
@@ -0,0 +1,38 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
sql_cmd="""create function ufn_get_cus_code (@cus_id int)
returns varchar(50)
as
begin
declare @cus_code varchar(50)
set @cus_code = (select code from tblCustomers where id = @cus_id)
return @cus_code
end;
"""
cursor.execute(sql_cmd)
connection.commit()
print("User defined function successfully created or altered...")
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
+3
View File
@@ -1 +1,4 @@
pyodbc pyodbc
langchain
langchain-mcp-adapters
aiohttp
-3
View File
@@ -1,3 +0,0 @@
import pyodbc
@@ -0,0 +1,61 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
sql_cmd="""
create or alter procedure usp_cus_details_update (@cus_id int)
as
update tblCustomers set lastName = lastName+' updated from sp' where id = @cus_id
"""
cursor.execute(sql_cmd)
connection.commit
print()
print("[before sp update call...]")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
print()
sql_cmd_2 ="""
exec usp_cus_details_update @cus_id = ?;
"""
prm_id = 4
cursor.execute(sql_cmd_2, prm_id)
connection.commit
print("[After sp update call...]")
cursor.execute("select * from tblCustomers")
while 1:
row = cursor.fetchone()
if not row:
break
print(row.id, row.code, row.firstName, row.lastName)
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,40 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
sql_cmd = """
declare @out nvarchar(max)
exec dbo.usp_cus_details @cus_id = ?, @out = @out output;
"""
prm_id=3
cursor.execute(sql_cmd, prm_id)
print("[printing sp call]")
rows = cursor.fetchall()
while rows:
print(rows)
if cursor.nextset():
rows = cursor.fetchall()
else:
rows = None
print()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
@@ -0,0 +1,32 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
sql_cmd="""
create or alter procedure usp_cus_details (@cus_id int, @out nvarchar(max) output)
as
select * from tblCustomers where id = @cus_id
"""
cursor.execute(sql_cmd)
connection.commit()
print("stored procedure successfully created or altered")
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()
+22
View File
@@ -0,0 +1,22 @@
import pyodbc
try:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.;DATABASE=SampleDB;Trusted_Connection=yes')
cursor = connection.cursor()
cursor.close()
connection.close()
except pyodbc.Error as ex:
print()
print("exception: ",ex)
cursor.close()
connection.close()
print()
exit()
print()