42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import pyodbc
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
DB_DRIVER = os.getenv("DB_DRIVER", "{ODBC Driver 17 for SQL Server}")
|
|
DB_SERVER = os.getenv("DB_SERVER")
|
|
DB_DATABASE = os.getenv("DB_DATABASE")
|
|
DB_USER = os.getenv("DB_USER")
|
|
DB_PASSWORD = os.getenv("DB_PASSWORD")
|
|
|
|
|
|
def get_connection():
|
|
"""Cria e retorna uma conexao com o banco de dados SQL Server, usando as credenciais definidas no .env."""
|
|
faltantes = [
|
|
nome for nome, valor in (
|
|
("DB_SERVER", DB_SERVER),
|
|
("DB_DATABASE", DB_DATABASE),
|
|
("DB_USER", DB_USER),
|
|
("DB_PASSWORD", DB_PASSWORD),
|
|
)
|
|
if not valor
|
|
]
|
|
if faltantes:
|
|
raise ValueError(
|
|
f"Variaveis de ambiente ausentes no .env: {', '.join(faltantes)}"
|
|
)
|
|
|
|
connection_string = (
|
|
f"DRIVER={DB_DRIVER};"
|
|
f"SERVER={DB_SERVER};"
|
|
f"DATABASE={DB_DATABASE};"
|
|
f"UID={DB_USER};"
|
|
f"PWD={DB_PASSWORD};"
|
|
f"TrustServerCertificate=yes;"
|
|
)
|
|
|
|
return pyodbc.connect(connection_string)
|