ทำไมผิด ?
บ่อยครั้งที่ผมเขียนผิด ก็นั่งงง เป็นวัน ว่าทำไมคนอื่นทำแบบเดียวกันแล้ว connect ได้
แล้วเราทำไม่ได้ แล้วก็หลายครั้งนั้น ผมก็หาสาเหตุได้ว่า เพราะสภาพแวดล้อม ไม่เหมือนกัน
ไม่ได้เกี่ยวว่า บ้านใครอยู่ที่ไหน แต่เกี่ยวกับว่า โปรแกรมของเรา ติดต่อไปยัง DB Server ที่เป็นแบบไหน
ต่างหาก เช่น
WindowsXP + SQL Server บนเครื่องเดียวกัน
WindowsXP เครื่องหนึ่ง SQL Server อีกเครื่องหนึ่ง Windows 2000 Server
SQL Server มีมากกว่า 1 Instance หรือ ไม่ได้ใช้ชื่อ Default Stance
ต่างคนก็ต่างรูปแบบกันไป
บางครั้งมี IIS เพื่อทำ Web Server มาอีก เลยงงไปใหญ่
เรามาดูกันครับ ว่า แยกโดยง่ายๆแล้ว เป็นยังไง
ตัวอย่างจะทำการติดต่อ SQL Server ดังนี้
* server01 คือชื่อเครื่องที่เป็น DB Server
serverName\instanceName ในที่นี้ คือ server01\instance01
กรณีที่ เราใช้ instance ห้ามลืมเด็ดขาดที่ต้องระบุ instance name ด้วยทุกครั้ง
Initial Catalog คือ ชื่อ ฐานข้อมูล ให้ชื่อว่า StoreDB
User Id และ Password คือ login สำหรับ SQL Server เช่น sa [ไม่แนะนำให้ใช้]
แบบแรก เรียกว่า
Standard Security:
เขียนสองแบบ อันไหนก็ได้ครับ ให้ผลเหมือนกัน
กรณี ที่เราได้สร้าง User ไว้ใน SQL Server ไว้แล้ว หรือ ไปขอเขาใช้ SQL Server คนอื่น แล้วเขาให้ User กับ Password สำหรับ ติดต่อฐานข้อมูลเท่านั้น
ส่วน Trusted_Connection=False เนี่ย ต้องระบุด้วยนะครับ เพราะเราจะขอใช้งาน User Id ของ SQL Server เลย
แบบสอง เรียกว่า
Trusted Connection:
อันนี้ พิเศษ สำหรับ Windows Server ครับ คือ SQL Server ที่ ติดตั้ง แบบ Mixed Mode คือ สามารถใช้ได้ทั้ง User Id บนระบบ Windows 2000 และ SQL Server login เพื่อติดต่อฐานข้อมูล หรือว่าโปรแกรมทำงานบนเครื่องเดียวกันกับ SQL Server หรือ เครื่องสองเครื่อง ได้ Trusted กันเรียบร้อยแล้ว
ทั้งสองแบบนี้ ก็ให้ผลแบบเดียวกัน แล้วแต่จะเลือกใช้
เห็นไหมครับว่า User Id กับ Password ไม่ต้องใส่อีกแล้ว เพราะการติดต่อจะมีการ Authen โดย Windows เองอยู่แล้ว
แบบสุดท้าย
Connect via an IP address:
ติดต่อ SQL Server อีกเครื่องหนึ่ง ชื่อเครื่องก็ไม่รู้ โปรโตคอล Netbios ก็ไม่ได้ใช้ รู้อย่างเดียวคือ IP address ของ SQL Server (SQL Server เป็น service ที่ใช้ TCP Port 1433 เป็น Default Port เปลี่ยนเป็นอันอื่น ถ้าไม่ได้ใช้ Port นี้)