การ insert ข้อมูลลง ms SQL server แบบ multi user โดยที่ PK ไม่ซ้ำกัน
ผมลอง insert ข้อมูลตามหัวข้อกระทู้ โดยใช้ loop forในการ insert ข้อมูลลง db จากสองเครื่องพร้อม ผลที่ได้ มันยังมีค่าที่ซ้ำกันครับ ขอคำแนะนำด้วยครับ ไม่รู้ว่าออกแบบตารางข้อมูลเหมือนผมหรือเปล่าครับ ผมแยก Primary Key ออกจาก ID (Identifier) ออกจากกัน และใช้ Flow Control เป็นตัวควบคุม สมมุติเวลาที่ User เลือกสร้างรหัสพนักงาน (ID) แบบอัตโนมัติ ก็จะเกิดการคำนวณหาจาก PK เช่น EMP0001 ... ผมจะสมมุติตัวอย่างไล่เรียงดังนี้ ...1. User A เข้ามาก่อน แล้วทำการสร้างรายการพนักงานขึ้นมาใหม่แบบอัตโนมัติ สมมุติคือ EMP0001 ...
2. User B เข้ามาตามหลังก็จะทำการสร้างรหัสพนักงานใหม่อัตโนมัติเช่นกัน ก็จะได้ EMP0001 ...
3. User B ทำการบันทึกข้อมูลก่อน ก็จะไม่มีปัญหาใดๆ
4. User A จะทำการบันทึกข้อมูลไม่ได้ เพราะดักเช็ค ID ก่อน ทำให้มี ID ซ้ำกันกับของเดิม โปรแกรมก็จะแจ้งเตือน และทำการสร้างใหม่ให้อัตโนมัติ ก็จะกลายเป็น EMP0002 (ในภาพประกอบ ผมไม่ได้ใส่ไว้ แต่ให้ User เขาเลือกกดให้รันรหัสใหม่อีกครั้งเอง)
5. เมื่อรหัส ID ไม่ซ้ำกัน ก็จะไปคำนวณหา Primary Key ก่อนทำการบันทึกผล (SaveData) ...
เมื่อทำดังนี้ต่อให้มี User C เข้ามาเพิ่มรายใหม่เข้าไปก่อน User B จะประมวลเสร็จ มันก็จะย้อนวนรอบกลับไปที่ข้อ 4 ...
ขอบคุณครับ ผมจำลอง insert เข้า table เดียว 2 field ครับ
หน้า:
[1]