手順 3:pyodbc を使用した SQL への接続を概念実証するStep 3: Proof of concept connecting to SQL using pyodbc

この例は、概念実証です。This example is a proof of concept. わかりやすさのためにサンプル コードは簡略化されており、Microsoft が推奨するベスト プラクティスを表しているとは限りません。The sample code is simplified for clarity, and doesn't necessarily represent best practices recommended by Microsoft.

開始するには、次のサンプル スクリプトを実行します。To get started, run the following sample script. test.py という名前のファイルを作成し、各コード スニペットを追加していきます。Create a file called test.py, and add each code snippet as you go.

> python test.py

接続するConnect

import pyodbc 
# Some other example server values are
# server = 'localhost\sqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'tcp:myserver.database.windows.net' 
database = 'mydb' 
username = 'myusername' 
password = 'mypassword' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()

Run queryRun query

Cursor.execute 関数は、SQL Database に対するクエリから結果セットを取得するために使用できます。The cursor.executefunction can be used to retrieve a result set from a query against SQL Database. この関数はクエリを受け取り、cursor.fetchone() を使用して反復処理できる結果セットを返します。This function accepts a query and returns a result set, which can be iterated over with the use of cursor.fetchone()

#Sample select query
cursor.execute("SELECT @@version;") 
row = cursor.fetchone() 
while row: 
    print(row[0])
    row = cursor.fetchone()

行を挿入するInsert a row

この例では、INSERT ステートメントを安全に実行し、SQL インジェクションからアプリケーションを保護するパラメーターを渡す方法を示します。In this example, you see how to run an INSERT statement safely, and pass parameters, which protect your application from SQL injection.

#Sample insert query
cursor.execute("""
INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) 
VALUES (?,?,?,?,?)""",
'SQL Server Express New 20', 'SQLEXPRESS New 20', 0, 0, CURRENT_TIMESTAMP) 
cnxn.commit()
row = cursor.fetchone()

while row: 
    print('Inserted Product key is ' + str(row[0]))
    row = cursor.fetchone()

Azure Active Directory と接続文字列Azure Active Directory and the connection string

pyODBC では、Microsoft ODBC Driver for SQL Server が使用されます。pyODBC uses the Microsoft ODBC driver for SQL Server. ODBC ドライバーのバージョンが 17.1 以降の場合は、pyODBC を通じて Azure Active Directory 対話型モードの ODBC ドライバーを使用できます。If your version of the ODBC driver is 17.1 or later, you can use the Azure Active Directory interactive mode of the ODBC driver through pyODBC. この対話型オプションは、Python と pyODBC によって ODBC ドライバーでのダイアログの表示が許可されている場合に機能します。This interactive option works if Python and pyODBC permit the ODBC driver to display the dialog. このオプションは、Windows オペレーティング システムでのみ使用できます。The option is only available on Windows operating systems.

Azure Active Directory 対話型認証の接続文字列の例Example connection string for Azure Active Directory interactive authentication

次の例は、Azure Active Directory 対話型認証を指定する ODBC 接続文字列を提供します。The following example provides an ODBC connection string that specifies Azure Active Directory interactive authentication:

server=Server;database=Database;UID=UserName;Authentication=ActiveDirectoryInteractive;

ODBC ドライバーの認証オプションの詳細については、「ODBC ドライバーでの Azure Active Directory の使用」を参照してください。For more information about the authentication options of the ODBC driver, see Using Azure Active Directory with the ODBC Driver.

次のステップNext steps

詳細については、 Python デベロッパー センターを参照してください。For more information, see the Python Developer Center.