ถนนสายเบสิก www.oocities.com/pontipa001

หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer

 Client / Server ผ่าน ODBC

    เรื่อง Client/Server เป็นเรื่องที่น่าสนใจมาก แต่ว่าเป็นที่รับรู้กันในวงจำกัด สาเหตุเนื่องมาจากหาซอฟแวร์ ประเภท Client/Server ยากมาก และแต่ละตัวแพงๆทั้งนั้น อีกทั้งหาคู่มือยากอีกต่างหาก ในปัจจุบันมี SQL Server นี่แหละที่น่าสนใจมาก หาซอฟแวร์ง่าย ราคาไม่แพงเกินไป และได้ข่าวว่า Version 7 สามารถเรียงลำดับภาษาไทยได้ยิ่งน่าใช้ใหญ่
    สำหรับผมเคยใช้ Progress มาประมาณ 2 ปี เป็นฐานข้อมูลประเภท Client/Server เช่นกัน แต่เวลาเขียนโปรแกรม ผมใช้ตัวโปรเกรสเขียน ทำให้ไม่รู้สึกว่ากำลังเขียนโปรแกรมแบบ Client/Server เพิ่งจะลองใช้ SQL Server เป็น Back End และใช้ VB เป็น Front End ผ่านทาง ODBC

  ทำความเข้าใจกับ Client/Server
  ประโยช์นของ Client/Server
  รู้จัก ODBC กันก่อน
  การสร้าง ODBC Data Source
  การใช้ ODBC ผ่านทาง Data Control
  การใช้ ODBC ผ่านทาง DAO
  เมื่อต้องการเปิด Access ในรูปแบบ ODBC

ทำความเข้าใจกับ Client/Server
  Client

ในความหมายการเขียนโปรแกรมคือ โปรแกรมที่ต้องการข้อมูล หรือรับบริการ จากโปรแกรมอื่น ที่กำลังทำงานบนเครื่องอื่น   (Server) ตัวอย่างเช่นผู้ใช้ต้องการทราบยอดขายประจำเดือน ก็จะส่งความต้องการไปที่โปรแกรมบน Server หลังจากนั้นรอรับข้อมูลที่ส่งจาก Server มา

  Server
ปกติคำว่า Server เรามักใช้อ้างถึง Hardware ที่ใช้รันโปรแกรมจำพวกที่ทำงานบน Server เพื่อใช้บริการให้กับเครื่องลูกข่าย และงานของ Server คือ ใช้ประมวลผลข้อมูล หรือคำสั่งต่างๆที่ตามความต้องการของลูกข่าย และส่งผลไปยังลูกข่ายที่ต้องการ สำหรับโปรแกรมที่ ใช้รันบนเครื่อง Server ที่นิยมมี Netware, Windows NT หรือ Unix

  File Server
ในที่นี้หมายถึง File ที่ฝากไว้ที่ Server และแชร์ให้ผู้อื่นได้ใช้ร่วมกัน ถ้าหากท่านใช้ Access หรือ ตระกูล Dbase เป็นฐานข้อมูลนั้นต้องใช้วิธีนำ File ไปไว้ที่ Server แล้ว แชร์ให้ผู้อื่นได้ใช้   ดังนั้นผู้ใช้แต่ละท่านจะเข้าถึงแฟ้มข้อมูลได้โดยตรง ซึ่งจะทำให้เกิดปัญหาได้หลายอย่าง เช่นความปลอดภัยข้อมูล, ความเสถียรของข้อมูล

  Database Server
เป็นโปรแกรมฐานข้อมูลที่รันบน Server เพื่อให้บริการข้อมูลแก่เครื่องลูกข่าย โดยผ่านทาง SQL กล่าวคือ เมื่อเครื่องลูกข่ายต้องการข้อมูลจะส่งผ่านSQL ไปที่ Database Server  หลังจากนั้น Database Server จะประมวลผลแล้วส่งผลกลับไปให้เครื่องลูกข่าย โปรแกรมจำพวก Database Server คือ SQL Server, Oracle, Infomix, Sybase เป็นต้น ผู้ใช้จะไม่ติดต่อที่แฟ้มโดยตรง จะต้องผ่าน Database Engine ก่อนเสมอ

  Client/Server
สำหรับ Client/Server ในความหมายนี้จะหมายถึง Application ที่ต้องการข้อมูลระหว่างเครื่องลูกข่าย กับ Server ที่รันด้วยโปรแกรมจำพวก Database Server นั่นเอง

ประโยช์นของ Client/Server

1. มีความน่าเชื่อถือมากกว่า เพราะว่ามีเพียง Database Server เดียวที่กระทำต่อข้อมูล ถ้าเป็น File Server ทุกคนที่ใช้จะติดต่อกับข้อมูลโดยตรง
2. สามารถเพิ่มขยาย System ได้ง่าย กรณีที่มีผู้ใช้มากขึ้น
3. ลด Traffic อันเนื่องมากจากการรับส่งข้อมูล เนื่องจากว่าถ้าใช้ File Server ข้อมูลทั้งหมดจะถูกส่งไปที่ Workstaion แต่ละตัว แต่ถ้าเป็น Client/Server ข้อมูลจะส่งไปเฉพาะตามเงื่อนไขที่เลือกผ่าน SQL เท่านั้น
4. มีเครื่องมือแก้ยามวิกฤติ เนื่องจากฐานข้อมูลจำพวก Client/Server ส่วนใหญ่จะมี Transaction Log, Backup หรือ Recovery Tool ต่างๆ เพื่อใช้กอบกู้หากเกิดปัญหา
5. มีความปลอดภัยสูง นอกจากจะมี UserID และ Passoword คุมแล้ว Client/Server ไม่จำเป็นต้อง Share File ให้ผู้อื่นเห็น ดังนั้นโอกาศที่บุคคลอื่นจะ Copy ฐานข้อมูล จากเครื่องลูกข่ายแทบไม่มี นอกจากไป Copy ที่ Server

 

รู้จัก ODBC กันก่อน

   Open Database Connectivity เป็นเทคโนโลยีของ Windows ที่ช่วยให้ Client Application สามารถอ่านข้อมูลจาก Server  โดยฝั่ง Client-Side ไม่จำเป็นต้องทราบเลยว่า ฐานข้อมูลบน Server เป็นอะไร เพียงแต่ส่ง SQL ผ่าน ODBC
   ODBC จะประกอบไปด้วย 3 ส่วน คือ
      1. ODBC Data Source
      2. Driver Manager
      3. Driver
   ดังมีโครงสร้างดังนี้

  
Apllication -->   ODBC Data Source --> ODBC Driver Manager --> ODBC Driver  ---> Database

การสร้าง ODBC Data Source

   ก่อนที่จะใช้ ODBC นั้นจำเป็นต้องสร้าง ODBC Data Source บน Client-Side ก่อน โดยมีขั้นตอนดังนี้
  1. ไปที่ Control Panel  แล้วดับเบิ้ลคลิ๊กที่ ไอคอน 32-Bit ODBC
  2. เลือก แถบคั่น System DSN เพื่อที่ผู้ใช้คนอื่นจะได้ใช้ได้ด้วย
  3. คลิก Add ... หน้าต่าง Create New Data Source จะปรากฏขึ้น
  4. เลือก SQL Server แล้ว คลิก Finish หน้าต่าง ODBC SQL Server Setup จะปรากฏ
  5. ตรง Data Source Name (DSN) ให้ใส่ชื่อที่ต้องการใช้ เช่น MyPubs เพื่อที่จะใช้ในการเปิด ODBC 
      ตรง Server ให้ใส่ชื่อ Server ที่รัน SQL Server ซึ่งคือชื่อ Computer นั่นเอง  เช่น MyServer
  6. คลิก Option หน้าต่าง จะขยายออก
  7. ตรง Database Name ให้ใส่ชื่อ Database เช่น Pubs เพื่อเป็นค่า Default
  8. คลิก OK
  ลองดูรูปตัวอย่าง

 

การใช้ ODBC ผ่าน Data Control

   หลังจากสร้าง ODBC Data Source แล้วต่อไปลอง ทดสอบว่าอ่านข้อมูลได้หรือไม่ วิธีที่ง่ายสุดใช้ Data Control
   อย่าลืม Start Up SQL Server โดยใช้ SQL Service Manager ที่เครื่อง Server ก่อนทำ
  1. เริ่ม New Project แล้วลาก Data Control ลง Form1 และลาก DBGrid ลง Form1
  2. ใส่ Property ของ Data Control ปกติชื่อ Data1 ดังนี้
     Connect :
ODBC;DATABASE=Pubs;UID=sa;PWD=;DSN=MyPubs
     RecordSource:
Authors
     ปกติถ้าใส่ ตรง Connect ถูกต้องแล้ว ตรง RecordSource เมื่อกิ๊ก Combo แล้วจะแสดงชื่อ Table เลย

     สำหรับ MyPubs คือชื่อที่เราใส่ตรง Data Source Name
     ส่วน Database =Pubs , UID=Sa และ PWD= เป็นตัวอย่างที่มากับ SQL Server 6.5
    Database คือชื่อ Pubs
    UID คือรหัสผู้ใช้ที่เข้า SQL Server
    Pwd คือรหัสผ่านซึ่งเป็นว่างๆ

    อนึ่งลองใช้ VB4 แล้วไม่ต้องใส่ DSN=MyPubs ตรง Connect แต่ให้ใส่ตรง
    Database Name : MyPubs

  3. ใส่Property ของ DBGrid ตรง  DataSource : Data1
  4. ลอง Retrive Fields โดยนำเมาส์วางที่ DBGrid แล้วคลิกปุ่มขวา เลือก Retrive Fields ถ้าขึ้นชื่อ Fields มาให้แสดงว่าใช้ได้แล้ว ถูกต้องแล้ว
  5. ลอง Run โปรแกรมถ้ามีข้อมูลขึ้นมาแสดงว่าทำถูกต้องแล้ว

การใช้ ODBC ผ่าน DAO

การเรียกใช้ ODBC ผ่านทาง DAO ไม่ใช่เรื่องยาก เรากำหนด ค่าที่จะส่งไปให้ ดังตัวอย่างจะเก็บไว้ที่ตัวแปรชื่อ strConnect และเปิดใช้ตรงส่วน OpenDatabase ส่วนMethod อื่นๆใช้เหมือนใช้ Dao ตามปกติ


Dim ws As Workspace
Dim db As Database
Dim Rs As Recordset
Dim strConnect As String
Sub Form_Load()
    strConnect = "ODBC;UID=Sa;PWD=;DATABASE=pubs;DSN=MyPubs;"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase("", False, False, strConnect)
     '*** นับจำนวน เรคคอร์ด
   strSQL = " Select * From Authors ; "
     Set Rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
    If Rs.RecordCount > 0 then
       Rs.MoveLast
       MsgBox " จำนวนเรคคอร์ด" & Rs.RecordCount
       Rs.MoveFirst
    End if
End Sub

 

เมื่อต้องการ Access ในรูปแบบของ ODBC

ในหัวข้อนี้เป็นเรื่องของ Client/Server ก็จริงอยู่ แต่ว่าคงมีน้อยคนที่จะลง Windows NT (Server) เอาไว้ที่บ้าน ดังนั้นถ้าหากจะทดสอบการเปิดแบบ ODBC ก็ต้องลงใช้เปิดจาก Access นี่แหละ ผมเลยนำวิธีการเปิด Access ในรูปแบบ ODBC มาแสดงให้ดูดังนี้

ไม่ต้องใส่ ODBCไว้ข้างหน้า

strConnect = ";PWD=;DATABASE=" & App.Path & "\Biblio.Mdb"
Set mDb = OpenDatabase("", False, False, strConnect)
Set mRs = mDb.OpenRecordset("Select * From Authors", dbOpenSnapshot)

ตัวอย่างการใช้ให้ Download www.oocities.com/pontipa001

หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer

1