مكتبة أعمل عليها لاجل التعامل مع قواعد البيانات في الدوت نت بطريقة الدلفي
#1
السلام عليكم

احياء لهذا القسم ولو بموضوع
لسهولة التعامل في الدلفي مع البيانات قررت ان استخدم نفس الاسلوب في الدوت نت عن طريق فئة كتبتها خصيصا لتسهل هذا الامر

كائن الاتصال يوازي مكون AdoConnection

طبعا بالامكان جعل هذه الفئات مرئية بسهولة UserControl

PHP كود :
Dim con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='|DataDirectory|\Contacts.mdb'"



الربط بين الجداول على طريقة الدلفي
PHP كود :
       TCustomer.Connection con
        TCustomer
.PrimaryKey "ID"
 
       TCustomer.TQuery "Select * from Customers"
 
       TCustomer.Open()

 
       TTotal.Connection con
        TTotal
.PrimaryKey "ID"
 
       TTotal.Keyindex "CustomerID"
 
       TTotal.PrimaryTable TCustomer
        TTotal
.TQuery "Select * from Total"
 
       TTotal.Open()


 
       DataGridView1.DataSource TCustomer.DataSource
        DataGridView2
.DataSource TTotal.DataSource 

الاضافة والتعديل والحذف على طريقة الدلفي
PHP كود :
Try
 
           TCustomer.Edit()
 
           TextBox1.Text TCustomer.Fields("ID")
 
           TCustomer.Fields("FirstName") = TextBox2.Text
            TCustomer
.Fields("LastName") = TextBox3.Text
            TCustomer
.Fields("Company") = TextBox4.Text
            TCustomer
.Save()
 
           MsgBox("Save OK")
 
       Catch ex As Exception
            MsgBox
("Error")
 
       End Try 

كل الكائنات مغلفة بحيث تتعامل معها وكأنك تتعامل مع مكون الجدول في الدلفي .
طبعا طالما هي بثقنية الدوت نت يمكن العمل بها مع اي لغة سواء في دلفي دوت نت او VB.net او C#.net او C++.net

كما تحتوي الفئة على بعض الاجراءات للقيام بعملية جمع اعمدة وامور اخرى يحتاجها المستخدم

هل تريدون ان ارفع المكتبة كملف Dll ام مفتوحة المصدر بلغة VB.net او C#.net



[صورة مرفقة: 162dfbf08001536.jpg]
فائدة رمضان تتجلى الان فحافظوا على ما كنتم عليه من الطاعات
الرد
#2
و عليكم السلام و رحمة الله

إذا رفعتها كـ DLL, كيف يمكن أن نعرف الدوال و الاجراءات الموجودة فيها ؟
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#3
بمجرد ان تقوم باشتقاق الفئة الرئيسية تظهر لك في محرر الكود قائمة بكل الخصائص والاجراءات والكائنات الموجودة فيها

[صورة مرفقة: 7ae070d680c1546.jpg]

طبعا تحتاج الى القليل من الفراغ بعد لتظهر تلميحات مع كل اجراء او خاصية توضح الغرض منه
طبعا ممكن يكون معها مثال مشروع بسيط باي لغة برمجة يوضح عملها .

في تجربة اجريت اختبار مشروع عملي كامل ونجحت فيه بدون مشاكل

[صورة مرفقة: b26726041825104.jpg]

اجريت قبل قليل تجربة على المكتبة وسرعة قراءتها

القراءة من 50 ألف سجل كانت من ربع الى ثلث ثانية

الى 97 الف او 100 ألف كانت ثانية .

طبعا هذه الثانية كانت مقلقة بالنسبة لي لاني لو استخدمت قاعدة بيانات Sqlite او Fire-bird لاختلف الوضع كثير .
والـ SqlServer معطل .
ولم يتبقى الا اسواء قاعدة بيانات عرفناها حتى الان وهي Access ، انها سيئة لدرجة انهم غالبا لا يحسبونها في مسابقات السرعة ولا تكون من ضمن القائمة .
على العموم ربما من الافضل لنا استخدام اسواء قاعدة بيانات للتجربة .

اذا 100 ألف سجل تم قراءتها فيي ثانية وكان معها عمود لحساب المجاميع والذي هو على اليسار تماما
وهو يقوم على حساب العمود d1+d2+d3  
تم عند اكتمال عملية التحميل قمت باجراء عملية احتساب كل عمود لوحده اي احتساب مجموع 100 ألف رقم لثلاثة اعمدة اي احتساب 300 ألف رقم وكانت السرعة حوالي 5 اجزاء من الثانية .
يعني سريعة ولا تلاحظ .

بصراحة تعتبر معقولة لاني كنت اتوقع ان استخدام DataAdapter والـ BindingSource قد يبطئ التنفيذ

[صورة مرفقة: 8155f0148952cee.jpg]


الان حتى وانا اعمل في الدوت نت لن اشعر بالغربة عن دلفي

PHP كود :
TCustomer.PrimaryKey "ID"
 
       TCustomer.TQuery "Select * from Customers"
 
       TCustomer.Open()
 
        

        TTotal
.PrimaryKey "ID"
 
       TTotal.Keyindex "CustomerID"
 
       TTotal.PrimaryTable TCustomer
        TTotal
.TQuery "Select * from Total"
 
       TTotal.Open() 

بالنسبة للدلفي نت انا لا انصح به ابدا ، ولكن اذا اراد احد فقط العمل مع السي شارب او الفي بي دوت نت وليست لديه خبرة كبيرة في التعامل مع قواعد البيانات تعتبر هذه المكتبة جيدة للبدء
مؤقتا حتى اثقان الثقنية
وعلى العموم قد تكون مفيدة حتى للذين لا يحبون ان يقوموا بكل العمل .
فائدة رمضان تتجلى الان فحافظوا على ما كنتم عليه من الطاعات
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف