การใช้ตัวควบคุม ADOData
ตัวควบคุม ADOData ใช้ Microsoft ActiveX Data Objects (ADO) เพื่อสร้างการเชื่อมต่อระหว่างตัวควบคุมที่ผูกกับข้อมูลและผู้ให้บริการข้อมูลอย่างรวดเร็ว ตัวควบคุมที่ผูกกับข้อมูลคือตัวควบคุมใดๆ ที่มีคุณสมบัติแหล่งข้อมูล ผู้ให้บริการข้อมูลสามารถเป็นแหล่งข้อมูลใดก็ได้ที่สอดคล้องกับข้อกำหนด OLEDB คุณยังสามารถสร้างผู้ให้บริการข้อมูลชุดย่อยได้อย่างง่ายดายโดยใช้โมดูลคลาสของ Visual Basic
แม้ว่าคุณสามารถใช้ออบเจ็กต์ข้อมูล ActiveX ได้โดยตรงในแอปพลิเคชันของคุณ แต่ตัวควบคุม ADOData มีข้อดีของการเป็นตัวควบคุมแบบกราฟิก (ด้วยปุ่ม "ไปข้างหน้า" และ "ย้อนกลับ") และอินเทอร์เฟซที่ใช้งานง่ายที่ช่วยให้คุณใช้โค้ดน้อยที่สุด สร้าง แอปพลิเคชันฐานข้อมูล
ใน "กล่องเครื่องมือ" ของ Visual Basic ตัวควบคุมจำนวนมากสามารถใช้เป็นตัวควบคุมที่ผูกกับข้อมูล รวมถึงกล่องกาเครื่องหมาย กล่องคำสั่งผสม รูปภาพ ป้ายชื่อ กล่องรายการ กล่องรูปภาพ และตัวควบคุมกล่องข้อความ นอกจากนี้ Visual Basic ยังมีตัวควบคุม ActiveX ที่เชื่อมโยงข้อมูลหลายตัว เช่น ตัวควบคุม DataGrid, DataCombo, แผนภูมิ และ DataList ผู้ใช้ยังสามารถสร้างตัวควบคุม ActiveX ที่ผูกกับข้อมูลของตนเอง หรือซื้อการควบคุมจากนักพัฒนารายอื่นได้
Visual Basic เวอร์ชันก่อนหน้ามีการควบคุมข้อมูลภายในและตัวควบคุม RemoteData (RDC) สำหรับการเข้าถึงข้อมูล ตัวควบคุมทั้งสองยังคงรวมอยู่ใน Visual Basic เพื่อให้มีความเข้ากันได้แบบย้อนหลัง อย่างไรก็ตาม เนื่องจาก ADO สามารถปรับเปลี่ยนได้มากขึ้น ขอแนะนำให้ผู้ใช้ใช้ตัวควบคุม ADOData เพื่อสร้างแอปพลิเคชันฐานข้อมูลใหม่
ข้อมูลเพิ่มเติม รายการทั้งหมดของตัวควบคุมที่ถูกผูกไว้กับข้อมูลอยู่ใน "ตัวควบคุมที่ถูกผูกไว้กับตัวควบคุม ADOData" หากต้องการเรียนรู้วิธีใช้ตัวควบคุมข้อมูลภายในหรือตัวควบคุม RemoteData โปรดดู "การใช้ตัวควบคุมข้อมูล" หรือ "การใช้ตัวควบคุม RemoteData" สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างผู้ให้บริการข้อมูล โปรดดู "การสร้างคลาสการรับรู้ข้อมูล"
การใช้งานที่เป็นไปได้
เชื่อมต่อกับฐานข้อมูลท้องถิ่นหรือระยะไกล
เปิดตารางฐานข้อมูลที่ระบุ หรือกำหนดชุดของระเบียนตามแบบสอบถาม Structured Query Language (SQL) ขั้นตอนการจัดเก็บ หรือมุมมองของตารางในฐานข้อมูล
ส่งค่าของเขตข้อมูลไปยังตัวควบคุมที่ผูกกับข้อมูล ซึ่งสามารถแสดงหรือเปลี่ยนแปลงได้
เพิ่มบันทึกใหม่หรืออัปเดตฐานข้อมูลตามการเปลี่ยนแปลงข้อมูลที่แสดงในตัวควบคุมที่ถูกผูกไว้
เมื่อต้องการสร้างแอปพลิเคชันฐานข้อมูลไคลเอ็นต์หรือส่วนหน้า ให้เพิ่มตัวควบคุม ADOData ลงในแบบฟอร์ม รวมถึงตัวควบคุม Visual Basic อื่นๆ ที่จำเป็น คุณสามารถวางตัวควบคุม ADOData หลายตัวบนแบบฟอร์มได้ตามความต้องการของคุณ อย่างไรก็ตาม โปรดทราบว่าการควบคุมนี้เป็นวิธีที่ค่อนข้าง "แพง" ในการสร้างการเชื่อมต่อ และควรใช้เมื่อตัวควบคุมแรกมีการเชื่อมต่ออย่างน้อยสองการเชื่อมต่อ และแต่ละตัวควบคุมที่ตามมามีการเชื่อมต่อเพิ่มเติมอย่างน้อยหนึ่งการเชื่อมต่อ
สร้างแอปพลิเคชันฐานข้อมูลส่วนหน้าด้วยโค้ดขั้นต่ำ
ด้วยการตั้งค่าคุณสมบัติบางอย่างในขณะออกแบบ คุณสามารถสร้างแอปพลิเคชันฐานข้อมูลที่มีโค้ดน้อยที่สุดได้ หากคุณใช้แหล่งข้อมูล OLEDB จะต้องสร้าง Microsoft DataLinkName (.MDL) ที่เกี่ยวข้องบนเครื่องของคุณ ดู "การสร้าง OLEDBDataLink ของ Northwind" สำหรับตัวอย่างทีละขั้นตอน
หากต้องการสร้างแอปพลิเคชันฐานข้อมูลส่วนหน้าอย่างง่าย:
1. วางตัวควบคุม ADOData บนแบบฟอร์ม (ส่วนปลายเครื่องมือของไอคอนคือ ADODC) หากตัวควบคุมไม่อยู่ใน "กล่องเครื่องมือ" ให้กดปุ่ม CTRL T เพื่อแสดงกล่องโต้ตอบ "ชิ้นส่วน" ในกล่องโต้ตอบส่วนประกอบคลิกMicrosoftADODataControl
2. ใน "กล่องเครื่องมือ" คลิกเพื่อเลือก "ADOData Control" จากนั้นกดปุ่ม F4 เพื่อแสดงหน้าต่างคุณสมบัติ
3. ในหน้าต่างคุณสมบัติ คลิก ConnectionString เพื่อแสดงกล่องโต้ตอบ ConnectionString
4. หากคุณสร้างไฟล์ Microsoft DataLink (.MDL) ให้เลือก "ใช้ไฟล์ OLEDB" แล้วคลิก "เรียกดู" เพื่อค้นหาไฟล์บนคอมพิวเตอร์ของคุณ หากใช้ DSN ให้คลิกใช้ชื่อแหล่งข้อมูล ODBC และเลือก DSN จากกล่อง หรือคลิกใหม่เพื่อสร้าง ถ้าคุณต้องการสร้างสตริงการเชื่อมต่อ ให้เลือก ใช้ ConnectionString คลิก สร้าง จากนั้นใช้กล่องโต้ตอบคุณสมบัติการเชื่อมโยงข้อมูลเพื่อสร้างสตริงการเชื่อมต่อ หลังจากสร้างสตริงการเชื่อมต่อแล้ว คลิกตกลง คุณสมบัติ ConnectionString จะถูกเติมด้วยสตริงที่คล้ายกับบรรทัดต่อไปนี้:
ไดรเวอร์ = {SQLServer}; เซิร์ฟเวอร์ = bigsmile; uid = sa; pwd = pwd; ฐานข้อมูล = pubs
5. ในหน้าต่าง "คุณสมบัติ" ให้ตั้งค่าคุณสมบัติ "แหล่งบันทึก" เป็นคำสั่ง SQL ตัวอย่างเช่น: SELECT*FROMTitlesWHEREAuthorID=72 เมื่อเข้าถึงตาราง คุณควรรวมส่วนคำสั่ง WHERE ไว้ด้วยเสมอ หากไม่ทำเช่นนั้นจะล็อคทั้งตาราง ซึ่งจะเป็นอุปสรรคร้ายแรงต่อผู้ใช้รายอื่น
6. วางตัวควบคุม "กล่องข้อความ" อื่นบนแบบฟอร์มเพื่อแสดงข้อมูลฐานข้อมูล
7. ในหน้าต่าง "คุณสมบัติ" ให้ตั้งค่าคุณสมบัติ "แหล่งข้อมูล" ของ Text1 เป็นชื่อของตัวควบคุม ADOData (ADODC1) ซึ่งจะผูกกล่องข้อความและตัวควบคุม ADOData เข้าด้วยกัน
8. ในหน้าต่าง "คุณสมบัติ" คลิก "ช่องข้อมูล" เพื่อดูรายการแบบเลื่อนลงของช่องที่มีอยู่ คลิกชื่อฟิลด์ที่คุณต้องการแสดง
9. ทำซ้ำขั้นตอนที่ 6, 7 และ 8 สำหรับแต่ละฟิลด์ที่คุณต้องการเข้าถึง
10. กดปุ่ม F5 เพื่อเรียกใช้แอปพลิเคชัน ผู้ใช้สามารถใช้ปุ่มลูกศรสี่ปุ่มในตัวควบคุม ADOData ซึ่งช่วยให้ผู้ใช้สามารถเข้าถึงจุดเริ่มต้นของข้อมูล จุดสิ้นสุดของระเบียน หรือย้ายจากระเบียนหนึ่งไปยังอีกระเบียนหนึ่งภายในข้อมูลได้
ตั้งค่า ConnectionString, Source, DataSource และ DataField ในโปรแกรม รหัสต่อไปนี้สาธิตวิธีการตั้งค่าคุณสมบัติทั้งสี่นี้ในโปรแกรม โปรดทราบว่าคุณต้องใช้คำสั่ง Set เพื่อตั้งค่าคุณสมบัติ DataSource
PRivateSubForm_Load()
ด้วย ADODC1
.ConnectionString=driver={SQLServer};&_
server=bigsmile;uid=sa;pwd=pwd;database=pubs
.RecordSource=Select*FromTitlesWhereAuthorID=7
จบด้วย
SetText1.DataSource=ADODC1
Text1.DataField=ชื่อเรื่อง
สิ้นสุดย่อย
เหตุการณ์การควบคุม ADOData
ตัวควบคุม ADOData มีเหตุการณ์ที่ตั้งโปรแกรมได้หลายอย่าง ตารางต่อไปนี้อธิบายเหตุการณ์เหล่านี้และเวลาที่เหตุการณ์เหล่านี้เกิดขึ้น แต่ตารางนี้ไม่ใช่รายการที่สมบูรณ์ของเงื่อนไขทั้งหมดเมื่อเหตุการณ์เหล่านี้เกิดขึ้น สำหรับข้อมูลที่สมบูรณ์เพิ่มเติม โปรดดูหัวข้ออ้างอิงเหตุการณ์แต่ละรายการ
สำหรับข้อมูลเพิ่มเติม หากคุณกำลังพยายามใช้การควบคุม ADOData ทีละขั้นตอน โปรดดู "การสร้างแอปพลิเคชันฐานข้อมูลอย่างง่ายโดยใช้ DataGrid และการควบคุมข้อมูล ADO" "การสร้างแอปพลิเคชัน DataCombo อย่างง่าย" และ "การสร้าง DataGrid ที่เชื่อมต่อกับ DataList ควบคุม."
ตั้งค่าคุณสมบัติที่เกี่ยวข้องกับฐานข้อมูลของตัวควบคุม ADOData
เมื่อสร้างการเชื่อมต่อ คุณสามารถใช้หนึ่งในสามแหล่งที่มา: สตริงการเชื่อมต่อ ไฟล์ OLEDB (.MDL) หรือชื่อแหล่งข้อมูล ODBC (DSN) เมื่อคุณใช้ DSN คุณไม่จำเป็นต้องเปลี่ยนคุณสมบัติอื่นใดของตัวควบคุม
อย่างไรก็ตาม ถ้าคุณทราบข้อมูลเพิ่มเติมเกี่ยวกับเทคโนโลยีฐานข้อมูล คุณสามารถเปลี่ยนคุณสมบัติอื่นๆ ที่ปรากฏในตัวควบคุม ADOData ได้ รายการต่อไปนี้จะอธิบายคุณสมบัติบางอย่างที่เกี่ยวข้องกับฐานข้อมูลของตัวควบคุมนี้ รายการนี้ยังแนะนำลำดับเชิงตรรกะในการตั้งค่าคุณสมบัติเหล่านี้ด้วย
โปรดทราบว่า เทคโนโลยีฐานข้อมูลมีความซับซ้อน และคำแนะนำต่อไปนี้ไม่ถือเป็นกฎเกณฑ์
1.ConnectionString—คุณสมบัติ ConnectionString คือสตริงที่สามารถมีค่าการตั้งค่าทั้งหมดที่จำเป็นสำหรับการเชื่อมต่อ พารามิเตอร์ที่ส่งผ่านในสายอักขระนี้เป็นพารามิเตอร์เฉพาะของไดรเวอร์ ตัวอย่างเช่น ไดรเวอร์ ODBC อนุญาตให้สตริงประกอบด้วยไดรเวอร์ ผู้ให้บริการ ฐานข้อมูลเริ่มต้น เซิร์ฟเวอร์ ชื่อผู้ใช้ รหัสผ่าน ฯลฯ
2.ชื่อผู้ใช้—ชื่อของผู้ใช้ เมื่อฐานข้อมูลมีการป้องกันด้วยรหัสผ่าน จะต้องระบุแอตทริบิวต์นี้ เช่นเดียวกับคุณสมบัติ Provider คุณสมบัตินี้สามารถระบุได้ใน ConnectionString หากมีการระบุทั้งคุณสมบัติ ConnectionString และคุณสมบัติ UserName ค่าใน ConnectionString จะแทนที่ค่าของคุณสมบัติ UserName
3.รหัสผ่าน—จำเป็นเมื่อเข้าถึงฐานข้อมูลที่ได้รับการป้องกัน คล้ายกับแอตทริบิวต์ของผู้ให้บริการและแอตทริบิวต์ชื่อผู้ใช้ หากมีการระบุรหัสผ่านในแอตทริบิวต์ ConnectionString ค่าที่ระบุในแอตทริบิวต์นี้จะถูกเขียนทับ
4.RecordSource - คุณสมบัตินี้มักจะมีคำสั่งที่ใช้ในการกำหนดข้อมูลที่จะดึงจากฐานข้อมูล
5.CommandType—แอตทริบิวต์ CommandType จะบอกผู้ให้บริการข้อมูลว่าแอตทริบิวต์ Source เป็นคำสั่ง SQL ชื่อของตาราง ขั้นตอนการจัดเก็บ หรือประเภทที่ไม่รู้จัก
6.CursorLocation—แอตทริบิวต์นี้ระบุตำแหน่งของเคอร์เซอร์ ไม่ว่าจะอยู่บนไคลเอนต์หรือบนเซิร์ฟเวอร์
เหนือกว่า การตัดสินใจครั้งนี้จะส่งผลต่อการตั้งค่าของคุณสำหรับคุณสมบัติต่อไปนี้
7.CursorType—แอตทริบิวต์ CursorType กำหนดว่าชุดระเบียนเป็นประเภทคงที่ ประเภทไดนามิก หรือประเภทเคอร์เซอร์ชุดคีย์
8.LockType—คุณสมบัติ LockType จะกำหนดวิธีการล็อคข้อมูลที่คุณกำลังแก้ไขเมื่อมีบุคคลอื่นพยายามเปลี่ยนแปลง วิธีการตั้งค่าคุณสมบัติ LockType นี้เป็นการตัดสินใจที่ซับซ้อนซึ่งขึ้นอยู่กับหลายปัจจัย
9.Mode—แอตทริบิวต์ Mode จะกำหนดการดำเนินการที่คุณต้องการดำเนินการกับชุดระเบียน ตัวอย่างเช่น หากคุณเพียงต้องการสร้างรายงาน คุณสามารถรับการปรับปรุงประสิทธิภาพได้โดยการตั้งค่าคุณสมบัตินี้เป็นแบบอ่านอย่างเดียว
10.MaxRecords—คุณสมบัตินี้กำหนดขนาดของเคอร์เซอร์ วิธีกำหนดค่าของคุณสมบัตินี้ขึ้นอยู่กับขนาดของเรคคอร์ดที่กำลังดึงข้อมูล และจำนวนทรัพยากรที่มีอยู่ (หน่วยความจำ) บนคอมพิวเตอร์ บันทึกขนาดใหญ่ (รวมถึงหลายคอลัมน์และสตริงที่ยาว) มีค่าใช้จ่ายทรัพยากรมากกว่าบันทึกขนาดเล็ก ดังนั้น คุณสมบัติ MaxRecords ต้องไม่ใหญ่เกินไป
11.ConnectionTimeout—ตั้งเวลาเพื่อรอเพื่อสร้างการเชื่อมต่อ หน่วยเป็นวินาที หากการเชื่อมต่อหมดเวลา ข้อผิดพลาดจะถูกส่งกลับ
12.CacheSize—แอตทริบิวต์ CacheSize ระบุจำนวนระเบียนที่สามารถดึงข้อมูลจากเคอร์เซอร์ได้ หากตั้งค่า CursorLocation ให้กับไคลเอ็นต์ คุณสมบัตินี้สามารถตั้งค่าเป็นจำนวนน้อยเท่านั้น (อาจเป็น 1) โดยไม่มีผลกระทบใดๆ หากตำแหน่งเคอร์เซอร์อยู่ที่ฝั่งเซิร์ฟเวอร์ คุณสามารถปรับตัวเลขนี้เป็นจำนวนแถวที่คุณต้องการดูได้ในคราวเดียว ตัวอย่างเช่น ถ้าคุณใช้ตัวควบคุม DataGrid เพื่อดู 30 แถว คุณสามารถตั้งค่า CacheSize เป็น 60 เพื่อให้คุณสามารถเลื่อนได้โดยไม่ต้องดึงข้อมูลเพิ่มเติม
13.BOFAction, EOFAction—คุณสมบัติทั้งสองนี้จะกำหนดลักษณะการทำงานของตัวควบคุมเมื่ออยู่ที่จุดเริ่มต้นและจุดสิ้นสุดของเคอร์เซอร์ ตัวเลือกที่ใช้ได้ ได้แก่ อยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุด การย้ายไปยังระเบียนแรกหรือระเบียนสุดท้าย หรือการเพิ่มระเบียนใหม่ (เฉพาะที่ส่วนท้ายเท่านั้น)
ตัวควบคุมที่เชื่อมโยงกับตัวควบคุม ADOData
การควบคุมใดๆ ที่มีคุณสมบัติ DataSource สามารถเชื่อมโยงกับตัวควบคุม ADOData ได้ ตัวควบคุมภายในต่อไปนี้สามารถผูกกับตัวควบคุม ADOData ได้:
ช่องทำเครื่องหมาย
คอมโบบ็อกซ์
ภาพ
ฉลาก
กล่องรายการ
PictureBox
กล่องข้อความ
ตัวควบคุม ActiveX ที่ผูกกับข้อมูลต่อไปนี้จะพร้อมใช้งานใน Visual Basic ทุกเวอร์ชัน:
รายการข้อมูล
ดาต้าคอมโบ
DataGrid
Microsoftลำดับชั้นFlexGrid
RichTextBox
ไมโครซอฟต์ชาร์ท
DateTimePicker
ImageCombo
มุมมองเดือน
สุดท้ายนี้ ผู้ใช้สามารถสร้างตัวควบคุม ActiveX ที่ผูกกับข้อมูลของตนเองได้โดยใช้ออบเจ็กต์ DataBinding
สำหรับข้อมูลเพิ่มเติม เกี่ยวกับการสร้างการควบคุมที่ผูกกับข้อมูลของคุณเอง โปรดดูที่ "การสร้างการควบคุมผู้ใช้ที่ผูกกับข้อมูล"
-