a module that makes queries easier to SQL Server than PYODBC
Project description
SQLSERVER PYODBC Module
Academic Papers Regarding this Module
Installation for linux guys
- Install a driver for your linux machine!
- I recommend
FreeTDS
Installing FreeTDS
from bash script
You may look at my script @ https://github.com/adgsenpai/InstallFreeTDS
Installing FreeTDS
Manually
- Install pre-requisite packages
sudo apt-get install unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc
- Point
odbcinst.ini
to the driver in/etc/odbcinst.ini
[FreeTDS]
Description = v0.91 with protocol v7.2
Driver = MYDRIVERPATH
where MYDRIVERPATH
is the path of the libtdsodbc.so
file
Hint! Look in the /usr/lib/mylinuxdistro/odbc
folder!
Will implement script in the future to install/automate this for linux solutions.
pip install sqlserver
Installation for windows guys
pip install sqlserver
Example of ConnectionString
DRIVERS = db.ReturnDrivers()
# output of drivers
['SQL Server', 'ODBC Driver 17 for SQL Server', 'SQL Server Native Client 11.0', 'SQL Server Native Client RDA 11.0', 'Microsoft Access Driver (*.mdb, *.accdb)', 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)', 'Microsoft Access Text Driver (*.txt, *.csv)']
# We can use a SQL ODBC Driver or FreeTDS
DRIVER={ODBC Driver 17 for SQL Server};SERVER=SERVERNAME,PORT;DATABASE=DB;UID=USERNAME;PWD=PASSWORD
Usage
Initialization
import sqlserver
db = sqlserver.adgsqlserver('yourconnectionstring')
Commands
Execute Query
parms
: ExecuteQuery(query:str)
This enables you to execute any query without any stdout
but returns a bool
True
or False
if query passes and logs exception
in terminal as stdout
.
query = 'somequery'
db.ExecuteQuery()
Return Query as Dictionary
parms
: GetRecordsAsDict(query:str)
We use this for select
statements or any other query that returns a table
as a result.
query = "SELECT 'Connection Passed' AS Result"
db.GetRecordsAsDict(query)
stdout
{'results': [{'Result': 'Connection Passed'}]}
Return Query as Column List
parms
: GetRecordsOfColumn(query:str,ColumnName:str)
We use this for select
statements or any other query that returns a table
as a result.
db.GetRecordsOfColumn("SELECT 'Connection Passed' AS Result", "Result")
stdout
['Connection Passed']
Create CSV Table Schema
parms
: CreateCSVTable(csvfile:str)
Creates a SQL Table with varchar(max) columns such that it can be ready to be inserted to based on the .csv column names
Assumption: somefile.csv
name,surname,phonenumber
test,testor,01234567810
path = 'C:/somefile.csv'
db.CreateCSVTable(path)
In SQL Table somefile.dbo
|name|surname|phonenumber|
Insert CSV Table
parms
: InsertCSVTable(csvfile:str)
Assumption: somefile.csv
name,surname,phonenumber
test,testor,01234567810
path = 'C:/somefile.csv'
db.InsertCSVTable(path)
In SQL Table somefile.dbo
--------------------------
|name|surname|phonenumber|
|----|-------|-----------|
|test|testor |01234567810|
--------------------------
Insert XML
parms
: InsertXMLSQLTable(xmlfilepath:str)
xmlfilepath = 'C:/somexml.xml'
db.InsertXMLSQLTable(xmlfilepath)
Generate Insert Script
parms
: InsertScript(df:DataFrame,tblName:str,isNEWID:bool=False)
df = pd.DataFrame({'name':['test','test2'],'surname':['testor','testor2'],'phonenumber':['01234567810','01234567810']})
db.InsertScript(df,'somefile')
stdout
'''
INSERT INTO [somefile]
VALUES
('test','testor','01234567810'),
('test2','testor2','01234567810')
'''
Generate Update Script
parms
: UpdateScript(dataDict:dict,whereCondition:str,tblName:str)
dataDict = {'name':'test','surname':'testor','phonenumber':'01234567810'}
whereCondition = "name = 'test'"
db.UpdateScript(dataDict,whereCondition,'somefile')
stdout
'''
UPDATE [dbo].[somefile]
SET
[name] = 'test',
[surname] = 'testor',
[phonenumber] = '01234567810'
WHERE
name = 'test'
'''
Generate Delete Script
parms
: DeleteScript(whereCondition:str,tblName:str)
whereCondition = "name = 'test'"
db.DeleteScript(whereCondition,'somefile')
stdout
'''
DELETE FROM [dbo].[somefile]
WHERE
name = 'test'
'''
Generate Select Script
parms
: SelectScript(whereCondition:str,tblName:str)
whereCondition = "name = 'test'"
db.SelectScript(whereCondition,'somefile')
stdout
'''
SELECT * FROM [dbo].[somefile]
WHERE
name = 'test'
'''
Execute Script
parms
: ExecuteScript(query:str)
query = "SELECT 'Connection Passed' AS Result"
db.ExecuteScript(query)
stdout
{'results': [{'Result': 'Connection Passed'}]}
Copyright ADGSTUDIOS 2023
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sqlserver-0.0.17.1.tar.gz
.
File metadata
- Download URL: sqlserver-0.0.17.1.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5ac71a8d7ce2e681abceeba221df32bf7cf4228e78386dcdab28657b6eebe89 |
|
MD5 | c5474bebb0ca3f85b9c48931f36bf05f |
|
BLAKE2b-256 | 9acbfe7bf8d0db731fb80e8834d2e3dd9699767dd37036d9178dbb6a03453314 |
File details
Details for the file sqlserver-0.0.17.1-py3-none-any.whl
.
File metadata
- Download URL: sqlserver-0.0.17.1-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22e3176b7fdc0007483115ad8eaf1bfb82beb1029a5b1882166ffd2f945202f7 |
|
MD5 | 6d5d0221e7c44ff4d01a2751bfde1f09 |
|
BLAKE2b-256 | 7a987362a17d3fe63ed11bca0239d7f279bfa76ab99eaa31d4c51f943a5e2f16 |