هذا الشرح من كتاب قمت بانجازه وهو جاهز لكن يحتاج لبعض التدقيق والاضافات وانا هالايام مشغول نوعا ما لكن قريبا انتهي من الكتاب. نستخدم الاداة OO40 لربط الاوراكل وتوجد هذه الاداة ضمن مجلدات الاوراكل وتعبر هذه الاداه من اقوى الادوات على ربط الاوراكل بالفيجوال بيسك. بعد الانتهاء من هذا الكتاب يكون باستطاعتك انشاء تطبيقات وواجهات لقواعد البيانات وسوف نتطرق لأغلب الادوات الموجودة في هذه الاداة. 1- orasession : هذا الشيء يمثل الاساس في النموذج OO40 وهو يقوم بتشغيل التطبيق وانشاء نسخة من الخادم INPROC SERVER وهو يحتوي على وسائل لانشاء الاتصال بقاعدة بيانات اوراكل. 2- oradatabase : يمثل اتصالا بقاعدة بيانات اوراكل وهو يقدم وسائل لتنفيذ عبارات sql 3- orasqlstmt : وهو يستخدم لتنفيذ عبارات DDL مثل CREATE TABLE 4-oradynaset : يمثل النتائج المعادة من عبارة sql وهو مؤشر في جانب العميل يمكن معالجته والتعامل معه ويتم انشائه باستخدام العبارة createdynaset للشء oradatabase وهنالك المزيد من الاشياء لكن سوف نتطرق لك واحدة في حينها 5- oraparameters : يمثل متغير ربط في عبارة sql وهو يقدم وسائل لإنشاء ومعالجة قيم المعاملات (يستخدم لتمرير متغيرات الاجراءات والدوال وعبارات sql ) 6- oraobject : يمثل نسخة من اشياء اوراكل المخزنه على شكل جدول 7- oraparametersarray مثل الشيء oraparameters لكن يكون مصفوفة من المعاملات والمتغيرات <span style='font-size:14pt;line-height:100%'>بدء العمل مع الاداة وطريقة الاتصال</span> طريقة الاتصال بقاعدة بيانات اوراكل: اولا: نضيف قبل كل شي الاداة من قائمة project ثم reference ثم ابحث عن oracle objects for OLE 3.0 type library ثم نقوم بتعريف ثلاث متغيرات : الاول متغير من نوع oraseesion وهو لتكوين سيرفر مع القاعدة وفتح القاعدة. الثاني متغير من نوع oradatabase وهو للاتصال مع قاعدة البيانات. الثالث متغير من نوع oradynasetلتخزين السجلات المستتنتجة. ويمن التعريف كمايلي:
Dim ses As orasessionDim database As oradatabaseDim dyn As OraDynaset
Set ses = CreateObject("oracleinprocserver.xorasession")
Set database = ses.OpenDatabase("ddd"," scott/tiger",0&)
Set dyn = database. CreateDynaset (mysql, 0&)
Text1.Text = dyn.Fields("empno").Value Text2.Text = dyn.Fields("ename").Value
Dim ses As orasessionDim database As oradatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)sql = "select * from emp"Set dyn = database.CreateDynaset(sql, 0&)Text1.Text = dyn.Fields("empno")Text2.Text = dyn.Fields("ename")
Create table employee(S_no char(9),S_name varchar2(50),Job varchar2(50),Salary number(10));
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee"Set dyn = database.CreateDynaset(SQL, 0&)
dyn.Fields("s_no").Value = "1000"dyn.Fields("s_name").Value = "ddd"dyn.Fields("job").Value = "programming"dyn.Fields("salary").Value = "5500"
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee"Set dyn = database.CreateDynaset(SQL, 0&)dyn.AddNewdyn.Fields("s_no").Value = "1000"dyn.Fields("s_name").Value = "MOHAMMED"dyn.Fields("job").Value = "programing"dyn.Fields("salary").Value = "5500"dyn.UpdateMsgBox "تمت الاضافة بنجاح"
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee"Set dyn = database.CreateDynaset(SQL, 0&)dyn.AddNewdyn.Fields("s_no").Value = TEXT1.TEXTdyn.Fields("s_name").Value = TEXT2.TEXTdyn.Fields("job").Value = TEXT3.TEXTdyn.Fields("salary").Value = TEXT4.TEXTdyn.UpdateMsgBox "تمت الاضافة بنجاح"
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee where s_no=1000"Set dyn = database.CreateDynaset(SQL, 0&)
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee where s_no=1000"Set dyn = database.CreateDynaset(SQL, 0&)Dyn.editDyn.fields("salary").value="6000"Dyn.updateMsgBox "تم التعديل"
Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee where s_no=1000"Set dyn = database.CreateDynaset(SQL, 0&)ثم نقوم بعملية الحذف كمايلي:Dyn.deleteوبالتالي يصبح الكود كامل كمايلي:Dim ses As OraSessionDim database As OraDatabaseDim dyn As OraDynasetSet ses = CreateObject("oracleinprocserver.xorasession")Set database = ses.OpenDatabase("ddd", "scott/tiger", 0&)SQL = "select * from employee where s_no=1000"Set dyn = database.CreateDynaset(SQL, 0&)dyn.DeleteMsgBox "تم الحذف"