في delphi.net، لدى VCL.net أمران يندم عليهما:
1. لا يمكن استخدام ADO (dbGo)، ولكن وفقًا لـ Levi، سيكون هذا المكون متاحًا في المستقبل.
2. لا يمكن استخدام ADO.net وBDP، وهو ما سيكون موضوع هذه المقالة.
في منطقة اتصال دلفي في بورلاند، رأيت داني يقول ذات مرة: "في delphi.net، يمكن لـ VCL.net الاتصال بمكونات Winform، ويمكن لـ Winform أيضًا الاتصال بمكونات VCL.net."
للتحقق من الجملة الأولى، قمت بتجربتها. يمكنك استخدام مكونات .Net في Vcl.net، على سبيل المثال، يمكنك استخدام System.Data.SqlClient مباشرة واستخدام فئة SqlConnection. بمعنى آخر، على الرغم من أنه لا يمكن رؤية مكونات .net في لوحة مكونات VCL.net، إلا أنه يمكن استخدام جميع فئات مكونات .net بواسطة VCl.net! ومع ذلك، فإن مجموعة بيانات Ado.net غير متوافقة مع مكون مجموعة بيانات VCl.net، لذلك لا يمكن استدعاء المكون المدرك للبيانات مباشرة. ومع ذلك، بعد قراءة 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. والباقي هو نفس دلفي الأصلي، وهذا كل شيء. طريقة التعديل نفسها فعالة أيضًا بالنسبة لـBDP.
الكود الخاص بي هو كما يلي،
الوحدة 1؛
واجهة
الاستخدامات
النوافذ، الرسائل، 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: TButton؛
ADONETConnector1: TADONETConnector;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
الإجراء Button1Click(Sender: TObject);
خاص
{تصريحات خاصة}
الاتصال:SqlConnection؛
ProDataSet : مجموعة البيانات؛
المحول: SqlDataAdapter؛
عام
{التصريحات العامة}
نهاية؛
فار
Form1: TForm1؛
تطبيق
{$R *.nfm}
الإجراء TForm1.Button1Click(Sender: TObject);
يبدأ
الاتصال := SqlConnection.Create('...');
اتصال.فتح؛
ProDataSet := DataSet.Create;
المحول := SqlDataAdapter.Create('select * from Product', Connection);
Adaptor.Fill(ProDataSet, 'Product');
ADONETConnector1.DataTable:=ProDataSet.Tables[0];
نهاية؛
نهاية.