- MS SQL Server Compact Edition
- PostgreSQL Embedded Engine
ณ วันที่เขียนนี้มี SQL Server CE โดยมีให้เลือกใช้ 3 version คือ
- MS SQL Server Compact 3.1
- MS SQL Server Compact 3.5
- MS SQL Server Compact 3.5 SP1
การจะใช้งานก็เริ่มจากต้องติดตั้ง Library ก่อนเลือก Download ได้ที่ http://www.microsoft.com/sqlserver/2005/en/us/compact-downloads.aspx ตามเวอร์ชั่ที่ต้องการ
การนำเอาไปใช้งานก็ง่ายๆ ใน Project ของเราก็ทำการ Add Reference ไปที่ System.Data.SqlServerCe
จากนั้นก็เรียกใช้ใน project ด้วย
using System.Data.SqlServerCe;
ก่อนอื่นเราต้องสร้างฐานข้อมูลก่อนด้วย
SqlCeEngine engine = new SqlCeEngine("Data Source='test.db'; LCID=1033; Password=\"strong_password\"; Encrypt = TRUE;");
engine.CreateDatabase();
จากโค๊ดข้างบนเราสร้าง object SqlCeEngine เพื่อเป็นตัวสร้างฐานข้อมูล โดยระบุ parameter เป็น connection string โดยต้องระบุ ชื่อฐานข้อมูล จะเป็นนามสกุลอะไรก็ได้ Locale ID ในที่นี้ใช้ 1033 เพื่อใช้กับชุดอักขระ Latin ถ้าใช้กับภาษาไทยก็ 1054 และก็ password ในการเข้าถึงฐานข้อมูล จากนั้นก็เรียกใช้คำสั่ง CreateDatabase เพื่อสร้างฐานข้อมูล
การใช้งานก็เหมือน ADO.Net ทั่วไป เริ่มจากสร้าง connection
SqlCeConnection conn = new SqlCeConnection("Data Source='test.db'; Password=\"strong_password\"");
การ Execute command ก็ใช้ SqlCeCommand
SqlCeConnection conn = new SqlCeConnection("Data Source='test.db'; Password=\"strong_password\"");
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO ....", conn);
ส่วนการ query ก็เรียกใช้ SqlCeDataAdapter ได้เช่นกัน
SqlCeConnection conn = new SqlCeConnection("Data Source='test.db'; Password=\"strong_password\"");
SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT ....", conn);
DataTable dt = new DataTable();
เสร็จแล้วก็สั่ง Close connection เท่านั้น การใช้งาน SQL Server CE ช่วยให้ Application ขนาดเล็กไม่ต้องติดตั้ง SQL Server หรือแม้กระทั่ง Desktop Engine ทำให้ความซับซ้อนของการติดตั้งลดลงไปอย่างมาก แต่ก็มีข้อจำกัดของตัวเองเช่น ไม่มีความสามารถ concurrent connection ถ้าต้องการใช้ก็ต้องเขียน server คอยจัดการ connection เอง, ไม่มี transaction และ Data Type บางตัว การเลือกใช้ต้องคำนึงถึงข้อจำกัดเหล่านี้ด้วยนะครับ