Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet exemple de preuve de concept utilise pyodbc
pour se connecter à une base de données SQL. Dans cet exemple, on suppose que vous utilisez l’exemple de base de données AdventureWorksLT.
Notes
Cet exemple doit être considéré uniquement comme une preuve de concept. L’exemple de code est simplifié par souci de clarté et ne représente pas nécessairement les meilleures pratiques recommandées par Microsoft.
pyodbc
à partir de PyPI.Connectez-vous à une base de données à l’aide de vos informations d’identification.
Créez un fichier nommé app.py.
Ajoutez une description docstring du module.
"""
Connects to a SQL database using pyodbc
"""
Importez le package pyodbc
.
import pyodbc
Créez des variables pour vos identifiants de connexion.
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
Créez une variable de chaîne de connexion à l’aide de l’interpolation de chaîne.
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
Utilisez la pyodbc.connect
fonction pour vous connecter à une base de données SQL.
conn = pyodbc.connect(connectionString)
Utilisez une chaîne de requête SQL pour exécuter une requête et analyser les résultats.
Créez une variable pour la chaîne de requête SQL.
SQL_QUERY = """
SELECT
TOP 5 c.CustomerID,
c.CompanyName,
COUNT(soh.SalesOrderID) AS OrderCount
FROM
SalesLT.Customer AS c
LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID
GROUP BY
c.CustomerID,
c.CompanyName
ORDER BY
OrderCount DESC;
"""
Utilisez cursor.execute
pour récupérer un jeu de résultats à partir d’une requête sur la base de données.
cursor = conn.cursor()
cursor.execute(SQL_QUERY)
Notes
Cette fonction accepte n’importe quelle requête et renvoie un jeu de résultats qui peut être itéré à l’aide de cursor.fetchone().
Utilisez cursor.fetchall
avec une boucle foreach
pour obtenir tous les enregistrements de la base de données. Ensuite, imprimez les enregistrements.
records = cursor.fetchall()
for r in records:
print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
Enregistrez le fichier app.py.
Ouvrez un terminal et testez l’application.
python app.py
29485 1 Professional Sales and Service
29531 1 Remarkable Bike Store
29546 1 Bulk Discount Store
29568 1 Coalition Bike Company
29584 1 Futuristic Bikes
Dans cet exemple, vous allez exécuter une instruction INSERT
en toute sécurité et passer des paramètres. Le passage de paramètres en tant que valeurs protège votre application contre les attaques par injection de code SQL.
Importez randrange
à partir de la bibliothèque random
.
from random import randrange
Générez un numéro de produit aléatoire.
productNumber = randrange(1000)
Conseil
Générer un numéro de produit aléatoire ici vous garantit de pouvoir exécuter cet exemple plusieurs fois.
Créez une chaîne d’instruction SQL.
SQL_STATEMENT = """
INSERT SalesLT.Product (
Name,
ProductNumber,
StandardCost,
ListPrice,
SellStartDate
) OUTPUT INSERTED.ProductID
VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
"""
Exécutez l’instruction à l’aide de cursor.execute
.
cursor.execute(
SQL_STATEMENT,
f'Example Product {productNumber}',
f'EXAMPLE-{productNumber}',
100,
200
)
Récupérez la première colonne du résultat unique à l’aide de cursor.fetchval
, imprimez l’identificateur unique du résultat, puis validez l’opération en tant que transaction à l’aide de connection.commit
.
resultId = cursor.fetchval()
print(f"Inserted Product ID : {resultId}")
conn.commit()
Conseil
Éventuellement, vous pouvez utiliser connection.rollback
pour restaurer la transaction.
Fermez le curseur et la connexion à l’aide de cursor.close
et connection.close
.
cursor.close()
conn.close()
Enregistrez le fichier app.py et testez à nouveau l’application
python app.py
Inserted Product ID : 1001
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’hui