การสร้าง Application Server (DataSnap Server)
สร้าง Project ใหม่ โดยเลือกเป็นการสร้าง DataSnap Server
เลือก DataSnap Server แล้วกด OK |
เลือก VCL Forms Application เพราะต้องการสร้าง App Server แบบที่มี GUI |
เลือกการเชื่อมต่อแบบ TCP/IP ในหมวดของ Protocols เพียงอย่างเดียว แล้วกด Next (ค่าเริ่มต้นจะมีการเลือก Sample Methods ไว้ ให้เอาออก) |
หน้าต่างถัดมาคือการตั้งค่า Port ของ TCP/IP เป็นช่องทางในการรับ-ส่งข้อมูล โดยที่ Port 211 เป็นค่าเริ่มต้นที่ให้มา เราสามารถใช้ Port นี้ได้ |
ขั้นตอนสุดท้าย เลือก TDSServerModule แล้วกด Finish ได้เลย |
จากนั้น Delphi XE จะสร้างโครงสร้างทั้งหมดที่ประกอบเป็น DataSnap Server ขึ้นมาให้ พร้อมที่จะ Implement ต่อไป
ส่วนประกอบทั้งหมด 3 Unit จะถูกสร้างขึ้นอัตโนมัติ |
ขั้นตอนต่อไปคือการเชื่อมต่อกับ Database ในที่นี้ผู้เขียนใช้ Microsoft SQL Server
เชื่อมต่อ DBX ในหน้าต่าง Data Explorer แล้วใช้เมาส์ลาก Table เข้ามาใน ServerMethodUnit1
โปรแกรมจะสร้าง SQLConnection และ SQLDataSet ให้เอง |
นำ DataSetProvider มาวางแล้วกำหนด DataSet ไปที่ DataSet ในที่นี้คือ EMPLOYEE ตามภาพ |
ขั้นตอนสุดท้ายให้กำหนดค่า Active=true ใน DataSet EMPLOYEE หากไม่มี error ถือว่าการเชื่อมต่อข้อมูลสำเร็จ Save Project ได้เลย
จากนั้นให้ทดสอบรัน DataSnap Server ขึ้นมา และค้างไว้เพื่อจะสร้างฝั่ง Client ขึ้นมาเชื่อมต่อ
(เนื่องจากใน Delphi XE จะไม่รัน App Server อัตโนมัติ เหมือนใน Delphi 7)
การสร้าง Application Client
โปรแกรมฝั่ง Client ก็สร้างตามปกติ โดยเลือกสร้างเป็น VCL Forms Application
เลือก VCL Forms Application |
ในฟอร์มฝั่ง Client วาง Component ต่างๆลงไป คือ SQLConnection , DSProviderConnection , CLientDataSet , DataSource และ DBGrid
Component ต่างๆ บนฟอร์ม Client |
การกำหนดค่า Properties ใน SQLConnection1 |
การกำหนดค่า Properties ใน DSProviderConnection1 (ค่าของ ServerClassName =TServerMethods1 ก็คือชื่อคลาสของ ServerMethodUnit1 ที่อยู่บน App Server นั่นเอง) |
Server Class Name |
กำหนด RemoteServer และ ProviderName ให้กับ ClientDataSet1 |
จากนั้นก็เหลือแค่ DataSource1 ที่กำหนดให้ DataSet มองไปที่ ClientDataSet1
และ DBGrid ให้มองไปที่ DataSource1 จากนั้นเมื่อกำหนด Active=true ใน ClientDataSet แล้ว จะปรากฎข้อมูลใน DBGrid ซึ่งเป็นการรับข้อมูลมาจาก DataSnap Server หรือ Application Server นั่นเอง
เมื่อ ClientDataSet Active |
หมายเหตุ
หาก Connect DataSnap Server จากฝั่ง Client ไม่ได้ให้ตรวจสอบ Property Driver -> Communication Protocol ว่ากำหนดชนิดการเชื่อมต่อเป็นไปตามที่กำหนดใน DataSnap Server หรือไม่
หาก Connect DataSnap Server จากฝั่ง Client ไม่ได้ให้ตรวจสอบ Property Driver -> Communication Protocol ว่ากำหนดชนิดการเชื่อมต่อเป็นไปตามที่กำหนดใน DataSnap Server หรือไม่
อ้างอิง : http://edn.embarcadero.com/article/41189
ถ้ามี ตัวอย่างของ delhi 7 บ้าง จะของคุณมากเลยครับ ผม
ตอบลบมีครับ ลองหาบทความก่อนหน้านี้ดู
ตอบลบหลักการทำคล้ายๆกันครับ
ไม่รู้ว่าตอน Deploy ต้องทำอย่างไงบ้างครับ
ตอบลบเอา Application Server ไปไว้ที่ Server แล้วนำตัว Client ติดต่อเข้ามาครับ
ตอบลบลองดูที่นี่ครับ
ทำความเข้าใจกับสถาปัตยกรรมเทียร์ (Tier)
http://systemdevman.blogspot.com/2011/06/tier.html
ขอบคุณ สำหรับความรู้ดี ๆ ที่เผื่อแผ่ ครับ
ตอบลบถ้า ใช้ ADO ที่ฝั่ง server ได้ไม๊ครับ
ตอบลบ