13 พฤศจิกายน 2557

Published พฤศจิกายน 13, 2557 by with 0 comment

เชื่อมต่อกับฐานข้อมูล Microsoft SQL Server ใน Python

  ระบบฐานข้อมูล Microsoft SQL Server (MS-SQL) เป็นระบบฐานข้อมูลหนึ่งที่มีผู้ใช้งานมากระดับหนึ่ง ในการเขียนโปรแกรมภาษา Python บทความนี้จะพาทุกท่านไปเชื่อมต่อกับฐานข้อมูล Microsoft SQL Server ใน Python
ในการเขียนโปรแกรมเชื่อมต่อกับฐานข้อมูล Microsoft SQL Server ใน Python ต้องมีการใช้งานโมดูลเพิ่มเติม
1. โมดูล pymssql เป็นโมดูลงาน DB-API interface ไป Microsoft SQL Server ใช้ LGPL  รองรับทั้ง Python 2 , Python 3
สามารถติดตั้งได้โดยสั่งผ่าน pip ด้วยคำสั่ง
pip install pymssql
สำหรับบน Windows สามารถโหลดไฟล์ติดตั้งโมดูลนี้ได้จาก PyPI
มีลักษณะตัวอย่างการใช้งานเบื้องต้น ดังนี้
from os import getenv
import pymssql

server = getenv("PYMSSQL_TEST_SERVER")
user = getenv("PYMSSQL_TEST_USERNAME")
password = getenv("PYMSSQL_TEST_PASSWORD")

conn = pymssql.connect(server, user, password, "tempdb") #ตั้งค่ารายละเอียดฐานข้อมูล
cursor = conn.cursor()
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
    DROP TABLE persons
CREATE TABLE persons (
    id INT NOT NULL,
    name VARCHAR(100),
    salesrep VARCHAR(100),
    PRIMARY KEY(id)
)
""")
cursor.executemany(
    "INSERT INTO persons VALUES (%d, %s, %s)",
    [(1, 'John Smith', 'John Doe'),
     (2, 'Jane Doe', 'Joe Dog'),
     (3, 'Mike T.', 'Sarah H.')])
# you must call commit() to persist your data if you don't set autocommit to True
conn.commit()

cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')
row = cursor.fetchone()
while row:
    print("ID=%d, Name=%s" % (row[0], row[1]))
    row = cursor.fetchone()

conn.close()

อ่านเอกสารเพิ่มเติมได้ที่ http://pymssql.org/
2. pypyodbc
pypyodbc เป็นหนึ่งโมดูล ODBC สำหรับ Python ใช้ MIT License รองรับทั้ง Python 2 , Python 3
ติดตั้งโมดูล pypyodbc ได้ง่าย ๆ ด้วยการติดตั้งผ่าน pip ด้วยคำสั่ง
pip install pypyodbc
โค้ดตัวอย่างการเชื่อมต่อกับฐานข้อมูล Microsoft SQL Server
import pypyodbc
conn = pypyodbc.connect('Driver=FreeTDS;Server=192.168.1.2;port=1433;uid=sa;pwd=pwd1;database=db_name')
print conn.cursor().execute('select * from a_table').fetchone()[0]

อ่านเอกสารเพิ่มเติมได้ที่ https://code.google.com/p/pypyodbc/

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)