منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : انشاء قاعدة بيانات باستخدام تقنية adox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
[COLOR="#A52A2A"]بسم الله الرحمن الرحيم

وصلى الله على محمد وآله الطاهرين

السلام عليكم ورحمة الله وبركاته [/COLOR]

اعزائي اعضاء و زوار المنتدى الكرام سنقوم في هذا الموضوع بأخذ نظرة بسيطة على تقنية ADOX وكيفية استخدام هذه التقنية في انشاء قاعدة بيانات Access بلغتي #C و VB حيث تعتبر هذه التقنية خاصة لمستوى الـ Data Definition Language الخاصة في التعامل مع انشاء الجداول والاعمدة.

أولا علينا ادراج مكتبة Microsoft ActiveX Data Objects Extensions من الـReference ثم COM ثم اختيار Microsoft ADO Ext. 2.8 for DDL and Security

ومن ثم ادراج المكتبة الى مجالات الاسماء مع مجال الاسماء IO:


#C
PHP كود :
using ADOX;
using System.IO


VB
PHP كود :
Imports ADOX
Imports System
.IO 


ثانا تحديد نص الاتصال الخاص بقاعدة بيانات Access حسب الاصدار الذي لديك:

#C
PHP كود :
string dbPath "مسار قاعدة بيانات أكسس";
 
string conStr "نص الاتصال" dbPath

VB
PHP كود :
Dim dbPath As String "مسار قاعدة بيانات أكسس"
Dim conStr As String "نص الاتصال" dbPath 

ثالثا التأكد من خلو المسار من قاعدة بيانات من نفس الاسم:

#C
PHP كود :
if (File.Exists(dbPath))
File.Delete(dbPath); 

VB
PHP كود :
If File.Exists(dbPathThen
File
.Delete(dbPath)
End If 

الان وصلنا الى الجزء الأهم حيث سنقوم بانشاء قاعدة البيانات اعتمادا على نص الاتصال مع انشاء جدول مع اضافة أعمدة وتحديد نوعها في الجدول

اولا ننشأ كائن من الواجهة Catalog ثانيا نستدعي الدالة Create التي تأخذ مدخل واحد يمثل نص الاتصال ومن خلاله نقوم بانشاء قاعدة البيانات في المساء المحدد في نص الاتصال:

#C
PHP كود :
Catalog c = new Catalog();
            
c.Create(conStr); 

VB
PHP كود :
Dim c As New Catalog()
        
c.Create(conStr

ثانيا انشاء جدول من خلال الواجهة Table

#C
PHP كود :
Table table = new Table();
table.Name "myTable";
table.ParentCatalog c

VB
PHP كود :
Dim table As New Table()
table.Name "myTable"
table.ParentCatalog 

نحدد اسم الجدول وقاعدة البيانات للجدول كما في الكود اعلاه.

ثالثا انشاء الاعمدة وسنقوم بانشاء حقلين باسم ID و fName على التوالي بالشكل التالي:

#C
PHP كود :
table.Columns.Append("ID"DataTypeEnum.adInteger4);
table.Keys.Append("ID"KeyTypeEnum.adKeyPrimary"ID""myTable""ID");
table.Columns["ID"].Properties["AutoIncrement"].Value true;
            
table.Columns.Append("fName"DataTypeEnum.adVarWChar50);
table.Columns["fName"].Properties["Nullable"].Value false

VB
PHP كود :
table.Columns.Append("ID"DataTypeEnum.adInteger4)
table.Keys.Append("ID"KeyTypeEnum.adKeyPrimary"ID""myTable""ID")
table.Columns("ID").Properties("AutoIncrement").Value True

table
.Columns.Append("fName"DataTypeEnum.adVarWChar50)
table.Columns("fName").Properties("Nullable").Value False 

كما في الكود أعلاه يمكننا اضافة عمود من خلال الكائن Columns للTable وعن طريق الدالة Apend التي تأخذ ثلاث مدخلات كما مبين في الشكل التالي:



كما يمكننا أن نحدد خاصية الحقل مثلا خاصية الـترقيم التلقائي او خاصية nullable وخصائص اخرى من خلال الـProperties للحقل وبامكاننا ان نحدد حقل الPrimaryKey او Foreign
key أو Unique للجدول عن طريق الـKeys للجدول كما في الكود أعلاه.

حيث الاول اسم الحقل والثاني نوع الحقل والثالث حجم الحقل.

وأخيرا سنقوم باضافة الجدول الى قاعدة البيانات ومن ثم نغلق الاتصال بقاعدة البيانات كالتالي:

#C
PHP كود :
c.Tables.Append(table);

null;
GC.Collect(); 

VB
PHP كود :
c.Tables.Append(table)

Nothing
GC
.Collect() 

كما ترون قمنا باسناد null الى الـCatalog مع استدعاء GC.Collect وذلك لعدم وجود دالة لغلق الاتصال مع قاعدة البيانات.


ملاحظة مهمة: هنالك عدة طرق لانشاء جدول وحقل وقاعدة بيانات وذلك عن طريق CatalogClass, TableClass, ColumnClass لكن أولا يجب أن نقوم بتحويل قيمة الـEmbed Interop Types الى False للـADOX عن طريق اختياره من الـReference والذهاب الى الـProperties ومن ثم تغيير القيمة. وانا قمت

الى هنا والحمد لله انتهينا من تقديم نبذة مختصر للمكتبة ADOX والتي تعتبر امتداد للمكتبة ADO لكن تتعامل فقط مع مستوى الـDDL. وأسأل الله لكم ولي الموفقية فيما يحبه ويرضاء ولا تنسوني و والدي من خالص دعواتكم والسلام عليكم ورحمة الله وبركاته.

الله يعطيك العافيه
الله يعافيك أخي العزيز ربيع
اخ سجاد لا أعرف كيف اشكرك هذا الموضوع يجب ان يثبت في القسم المناسب مثلا
قسم أسئلة برمجة قواعد البيانات تحت بيئة .net
او
فيجوال بيسك دوت نت VB.NET
حتى نستفيد نحن منه ايضا وليس فقط لـ C#
شكرا جزيل الشكر
السلام عليكم

بارك الله فيك

تم نقل الموضوع الى قسم مقالات وبرمجة قواعد البيانات
شكرا جزيلا اخ سجاد
ولكن هناك مشكلة
Imports ADOX

يظهر عندها خطأ هل البرنامج لا يدعمها ويجب ان انزل ملف بخصوص هذا الموضوع بحيث يتعرف على على المكتبة
السلام عليكم

اقرأ المقال جيدا
إقتباس :دراج مكتبة Microsoft ActiveX Data Objects Extensions من الـReference ثم COM ثم اختيار Microsoft ADO Ext. 2.8 for DDL and Security
فتح الله لك..
السلام عليكم

ولك ان شاءالله
شكرا اخ سجاد لقد اخطات في اختيار المكتبة :p
شكرا جزيلا لك
الصفحات : 1 2