بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
مقدمة:
نعرف جميعاً أنه لإجراء اتصال من برنامج ما مع قواعد بيانات يلزم مزود بيانات يقوم بعمل الوسيط بين البرنامج و محرك قاعدة البيانات ومن أشهر مزودات قواعد البيانات لأولئك الذين يستخدمون تقنيات ميكو (Microsoft) هي مزودات ODBC و كذلك مزودات OLE .
وعند الحديث عن ربط برامجنا بقواعد بيانات ميكو مثل SQL SERVER أو MS ACCESS فإن الأمر يكون في منتهى البساطة فقواعد البيانات هذه مدعومة بقوة فهي لنفس الشركة و لكن ...
يكاد يكون هناك إجماع على أن قواعد بيانات Oracle هي الرائدة ( و المنافسة شديدة بينها و بين SQL Server إلا أن Oracle تعتمد تقنيات أمان و إدارة تتفوق بها كثيراً على تقنيات ميكو , ولكن المشكلة أن أوراكل كانت تدعم برمجيات JAVA وهذا ليس غريباً فهي مبنية بهذه اللغة و بالتالي كان على مبرمجي ميكو حتى يقيموا اتصال بين برامجهم و قواعد بيانات أوراكل أن يمروا أولاً عبر مزود ميكروسوفت OLE و الذي بدوره يرتبط بمزود قواعد بيانات Oracle و من ثم يتصل بقاعدة البيانات و هذا كان يسبب الكثير من المشاكل , إلى أن ظهرت تقنيات dotNET و التي أجبرت Oracle على أن تغير وجهة نظرها في الموضوع ...
فقامت بدعم تقنيات dotNET بشكل كبير ذلك بإنزال مزودات ODP.NET اختصاراً لـ (Oracle Data Provide.NET) و الذي قلب الموازين رأساً على عقب
الآن أصبحت برامج dot.NET تتعامل مباشرة مع قواعد بيانات Oracle و بقدرات وصول رائعة , فإلى الموضوع ...
المتطلبات:
MS Visual Studio.NET
Oracle DataBase
ODP.NET (Oracle Development Tools ) و المتوفرة مجاناً على موقع Oracle
www.oracle.com
إضافة المكتبات :
جميع الكائنات و الدوال المطلوبة موجودة في ملف DLL يسمى Oracle.DataAccess.DLL لذا نقوم بإضافة هذه المكتبة من قائمة Project نختار الأمر Add Reference
و من ثم نضيف المكتبة و التي تكون عادة في المسار : C:\oracle\ora92\bin
التطبيق العملي:الآن سنقوم بتحميل المكتبات المطلوبة بإضافة هذين السطرين في منطقة التصريحات
Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types
ثم نقوم بتعريف المتغيرات التالية:
dim myConnectionString as string="Data Source=MYDATASOURCE;User ID=USERNAME;Password=PASSWORD" Dim conn As New OracleConnection(myConnectionString) Dim myAdapter As OracleDataAdapter = New OracleDataAdapter Dim myDataset As New DataSet Dim myTable as DataTable Dim myRow As DataRow Dim myCMD as new OracleCommand
و الآن لنفرض وجود جدول في قاعدة البيانات باسم Table1 و يحتوي على الحقول التالية :
Col1
Col2
Col3
سنقوم بكتابة كود مشابه للتالي للحصول على البيانات من الجدول
myCMD.CommandText = "SELECT * FROM Table1"
myCMD.Connection = conn
myCMD.CommandType = CommandType.Text
myAdapter.SelectCommand = myCMD
try
myAdapter.Fill(myDataset, "Table1")
for each myRow in myDataset.Tables("Table1").Rows
msgbox (myRow("Col1") & "|" & myRow("Col2"))
next
Catch ex As Exception
MsgBox(ex.Message)
End Tryوبهذا نكون قد أعددنا اتصال ناجح بقاعدة بيانات أوراكل و قمنا بجلب بيانات من جداولها ,
خاتمة:
أرى أن هذه التقنية لم تأخذ حقها من النقاش في المنتيات العربية و لكن أتمنى من أعضاء هذا المنتدى الكبير و الذي لطالما تعلمت منه الكثير أن يثروا الموضوع أكثر .
خالص تحياتي
و السلام عليكم ورحمة الله وبركاته