ใน delphi.net VCL.net มีความเสียใจสองประการ:
1. ADO (dbGo) ไม่สามารถใช้งานได้ แต่ตามข้อมูลของ Levi ส่วนประกอบนี้จะพร้อมใช้งานในอนาคต
2. ไม่สามารถใช้ ADO.net และ BDP ได้ ซึ่งจะเป็นหัวข้อของบทความนี้
ในพื้นที่การสื่อสาร delphi ของ Borland ฉันเคยเห็น Danny พูดว่า "ใน delphi.net VCL.net สามารถเรียกส่วนประกอบ Winform ได้ และ Winform ก็สามารถเรียกส่วนประกอบ VCL.net ได้เช่นกัน"
เพื่อที่จะตรวจสอบประโยคแรก ฉันลองใช้แล้ว คุณสามารถใช้ส่วนประกอบ .Net ใน Vcl.net ได้ ตัวอย่างเช่น คุณสามารถใช้ System.Data.SqlClient และใช้คลาส SqlConnection ได้โดยตรง กล่าวอีกนัยหนึ่ง แม้ว่าส่วนประกอบ .net จะไม่สามารถมองเห็นได้ในแผงส่วนประกอบของ VCL.net แต่ VCl.net สามารถใช้คลาสส่วนประกอบ .net ทั้งหมดได้! อย่างไรก็ตาม ชุดข้อมูลของ Ado.net เข้ากันไม่ได้กับส่วนประกอบชุดข้อมูลของ VCl.net ดังนั้นจึงไม่สามารถเรียกองค์ประกอบ data-aware ได้โดยตรง อย่างไรก็ตาม หลังจากอ่าน Levi's Inside Vcl แล้ว ฉันได้เรียนรู้ว่ามีส่วนประกอบ ADONETConnector เมื่อใช้ส่วนประกอบนี้ Ado.net จะสามารถรองรับการใช้ส่วนประกอบที่รับรู้ข้อมูลได้
ขั้นแรก dll ของคอมโพเนนต์ VCL.net มี Borland.Vcl.Design.AdoNet.dll ภายใต้ BDS/2.0/Bin คลิกเมนูติดตั้งคอมโพเนนต์ .net แล้วเพิ่ม dll นี้ในหน้าคอมโพเนนต์ .net vcl ของ หลังจากคลิก คุณจะเห็นส่วนประกอบ ADONETConnector จากนั้นเพิ่ม Dbgrid, db...., datasoure.... ตราบใดที่ datasource.dataset:=ADONETConnector1 ที่เหลือก็เหมือนกับ Delphi ดั้งเดิมนั่นแหละ วิธีการแก้ไขแบบเดียวกันนี้ใช้ได้ผลกับ BDP เช่นกัน
รหัสเฉพาะของฉันมีดังนี้
หน่วย หน่วยที่ 1;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม,
กล่องโต้ตอบ
System.Data.SqlClient,
System.Data, System.ComponentModel, Borland.Vcl.StdCtrls,
Borland.Vcl.ExtCtrls, Borland.Vcl.DBCtrls, Borland.Vcl.Grids,
Borland.Vcl.DBGrids, Borland.Vcl.Db, Borland.Vcl.ADONETDb;
พิมพ์
TForm1 = คลาส (TForm)
Button1: T ปุ่ม;
ADONETConnector1: TADONETConnector;
แหล่งข้อมูล1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
ขั้นตอน Button1Click (ผู้ส่ง: TObject);
ส่วนตัว
{ประกาศส่วนตัว}
การเชื่อมต่อ:SqlConnection;
ProDataSet : ชุดข้อมูล;
อะแดปเตอร์: SqlDataAdapter;
สาธารณะ
{ประกาศสาธารณะ}
จบ;
var
แบบฟอร์ม 1: TForm1;
การดำเนินการ
{$อาร์ *.nfm}
ขั้นตอน TForm1.Button1Click (ผู้ส่ง: TObject);
เริ่ม
การเชื่อมต่อ := SqlConnection.Create('...');
การเชื่อมต่อเปิด;
ProDataSet := ชุดข้อมูลสร้าง;
อะแดปเตอร์ := SqlDataAdapter.Create('select * from Product', Connection);
อะแดปเตอร์เติม (ProDataSet, 'ผลิตภัณฑ์');
ADONETConnector1.DataTable:=ProDataSet.Tables[0];
จบ;
จบ.