วันศุกร์ที่ 30 ธันวาคม พ.ศ. 2554

การจัดการฐานข้อมูล SqLite กับแอนดรอยด้วยภาษาไพธอน

สวัสดีครับ วันนี้นำเสนอการเขียนโปรแกรมภาษาไพธอนติดต่อฐานข้อมูล SqLite ไม่เสียค่าลิขสิทธิ์ ในเครื่องแอนดรอย ครับ ปกติหากท่านติดตั้ง SL4L และไพธอนในระบบของท่านเรียบร้อยแล้ว ท่านสามารถใช้งานไลบรารี่ sqlite ได้ครับ (ของดีและฟรีมีให้ใช้ด้วยระบบเปิด) มีใจความสำคัญดังนี้

พิจารณาโค๊ดต่อไปนี้
# -*- encoding: utf-8 -*-


import android
droid = android.Android()


import sqlite3

DB_NAME = '/mnt/sdcard/MyDatabase3.db'
database = sqlite3.connect(DB_NAME) # Create a database file
cursor = database.cursor() # Create a cursor
cursor.execute("CREATE TABLE IF NOT EXISTS mytable(name VARCHAR(20), zipcode VARCHAR(5))") # Make a table

# Insert some people into the table
cursor.execute("INSERT INTO mytable(name, zipcode) VALUES('จักรกฤษณ์  แสงแก้ว', '30000')")
cursor.execute("INSERT INTO mytable(name, zipcode) VALUES('ไพธอนประเทศไทย', '30000')")

database.commit() # Save our changes
database.close() # Close the connection to the database

database = sqlite3.connect(DB_NAME) # Open the database file
cursor = database.cursor() # Create a cursor

cursor.execute("SELECT * FROM mytable LIMIT 0,10") # Select everyone in the table
results = cursor.fetchall()
for entry in results:
    print "%s %s\n"%(entry[0],entry[1])


คำอธิบาย

1. คำสั่ง # -*- encoding: utf-8 -*- หมายถึงกำหนดให้เอกสารโค๊ดเข้ารหัสแบบ UTF-8 กล่าวคือเป็นCharacter Set ที่ใช้อักขระได้ทุกภาษา



2. คำสั่ง import android เป็นการขอใช้งานไลบราีรี่ android

3. คำสั่ง droid = android.Android() เป็นการสร้างอินสแตนท์หรืออ็อบเจ็คจากคลาส Android()


4. คำสั่ง import sqlite3 ขอใช้ไลบราีรี่ sqlite3


5. คำสั่ง DB_NAME = '/mnt/sdcard/MyDatabase3.db' ประกาศตัวแปร DB_NAME และให้ระบุไดเร็คทอรี่ /mnt/sdcard/MyDatabase3.db" คือชื่อไดเร็คทอรี่และชื่อไฟล์ฐานข้อมูล

6. คำสั่ง database = sqlite3.connect(DB_NAME) เป็นการสร้างฐานข้อมูล

7. คำสั่ง cursor = database.cursor() สร้างเคอร์เซอร์

8. คำสั่ง cursor.execute("CREATE TABLE IF NOT EXISTS mytable(name VARCHAR(20), zipcode VARCHAR(5))") เป็นการสร้างตารางชือ mytable มีสองฟิลด์ name และ zipcode

9. คำสั่ง ป้อนข้อมูลเข้าตารางด้วยคำสั่ง SQL
cursor.execute("INSERT INTO mytable(name, zipcode) VALUES('ไทยแอนดอรยมาเก็ต', '30000')")
cursor.execute("INSERT INTO mytable(name, zipcode) VALUES('ไพธอนประเทศไทย', '30000')")

10. คำสั่ง database.commit()  ทำการบันทึกการฐานข้อมูล

11. คำสั่ง database.close() ทำการปิดฐานข้อมูล

ต่อไปแสดงขั้นตอนการอ่านข้อมูลในฐานข้อมูล

12. คำสั่ง database = sqlite3.connect(DB_NAME) ทำการเปิดฐานข้อมูล

13. คำสั่ง cursor = database.cursor() ทำการสร้างเคอร์เซอร์

14. คำสั่ง cursor.execute("SELECT * FROM mytable LIMIT 0,10") คำสั่งเอ็กซีคิวส์ SQL

15. คำสั่ง results = cursor.fetchall() วนเข้าไปใน cursor และ fetch ข้อมูลทั้งหมดออกมา

16. for entry in results:   วนรอบและแสดงผลข้อมูลออกมา
       print "%s %s\n"%(entry[0],entry[1])  โดยที่ entry[0] คือ คอลัมน์ name และ entry[1] คือคอลัม zip


สำหรับวันนี้ขอนำเสนอขั้นตอนพอเป็นสังเขปเท่านี้ครับ พบกันใหม่โอกาสต่อไป สวัสดีครับ

แหล่งอ้างอิง
http://sqlite.org
http://python.org

ไม่มีความคิดเห็น:

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