الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى الاتصال بين الدوت نت 2008 و قاعدة بيانات اوراكل 10G

بدأه mohamed_nor_eldin في 3 أكتوبر 2011 · 9 رد · 3,479 مشاهدة · في قسم لغة الاستفسارات SQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

الاخوه الافاضل انا شغال فى برنامج و تكمن المشكله لدى ان هناك بيانات مطلوب احضارها من قاعدة بيانات اوراكل 10G الا اننى لم استطع الوصول لنتيجه فيما يلى جميع البيانات الممكنه لدى و ارجو من احد الاخوه الافاضل اعطائى مثال على هذه المعطيات اولا انا نزلت كلينت الاتصال 10G من لوراكل مساحته 100 ميجا تقريبا و اللى فهمه انى بنزله علشان اخد منه oracle.data.access واضيفه للبرنامج ودا انا عملته

اولا رقم اى بى السيرفر 192.168.1.1 --- اسم قاعدة البيانات nour - اسم المستخدم asd - الباسورد 123

ثانيا انا اللى وصلى من الشركة بتاعت الداتا بيز جملة sql مش عارف دى view ولا ايه بالضبط نصها

    SELECT instanceid , custmer_name , req_name ,
i.startdate , 
 last_status,
0 fees , 
nid ,
passportid  , address,
 mobile , nationality
 FROM NHC_V2SEARCH_SCREEN
--------------------------
REQUESTS ("REQ_ID", "REQUEST_NAME", "ID")

ثالثا انا شغال البرنامج على فجول 2008 لايوجد من ضمن انواع كائنات الاتصال الى oracle 9i

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

#2

السلام عليكم ....

حتى يتم اتصال الدوت نت بالأوراكل فنحن بحاجة إلى Provider (ملفات الــ DLL اللازمة للإتصال بالقاعدة) و يوجد لدينا عدة أنواع من الــ Provider

الأول من مايكروسوفت Microsoft's .NET Framework Data Provider for OLE DB و يحوي الــ namespace المسمى System.Data.OleDb وياتي تلقائيا مع الفيجول ستوديو .نت و لا داعي لتحميله (على فكرة اسم الــ dll هو System.Data.dll)

الثاني أيضا من مايكروسوفت و هو Microsoft's .NET Framework Data Provider for ODBC (تعرف أنه يمكننا الاتصال بأوراكل من ODBC) و اسم الــ dll هو : Microsoft.Data.Odbc.dll و الــ namespace هو System.Data.Odbc و اسم الــ dll هو Microsoft.Data.Odbc.dll

الثالث أيضا من مايكروسوفت و هو Microsoft's .NET Framework Data Provider for Oracle و يحوي الــ namespace المسمى System.Data.OracleClient و اسم الــ dll هو System.Data.OracleClient.dll

الرابع من شركة أوراكل ODP.NET—The .NET data provider for the Oracle database by Oracle Corporation و الــ namespace له اسمه Oracle.DataAccess.Client اسم الــ dll هو Oracle.DataAccess.dll , اذا عندك اوراكل 10g فسوف تجد هذا الــ dll في المسار :

C:\oracle\product\10.1.0\db_1\BIN

أو في المسار C:\oraclexe\app\oracle\product\10.2.0\server\BIN (بعض المراجع تقول هذا و بعضها ذاك , أنت اعمل بحث عن ملف الــ DLL و ريح بالك) و يمكن تنزيل الــ ODP.Net من موقع اوراكل " مجانا " واعداده في جهازك . (و يمكن أثتاء تنزيل الأوراكل يمكن تحديد هل نريد تنزيله أم لا (غير متأكد)) ...

على كل حال .. لا تتعب نفسك ... فالملف Oracle.DataAccess.dll موجود بالمرفقات ..

لاستخدام هذا الــ dll تحتاج الى عمل Reference له في مشروعك .

ثم :

using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

ثم :

OracleConnection oracleConn = new OracleConnection();
            //oracleConn.ConnectionString = "User Id=system;Password=manager;Data Source=oracleSN;";
            oracleConn.ConnectionString = "Persist Security Info=False;User ID=system;password=manager;Data Source=hosampc";
            oracleConn.Open();
            OracleCommand command = new OracleCommand();
            command.CommandType = CommandType.Text;
            command.Connection = oracleConn;
            command.CommandText = "SELECT 1 , 2 FROM DUAL;";
            DataSet ds = new DataSet();
            OracleDataAdapter adapter = new OracleDataAdapter(command);
            //myAdapter.SelectCommand = myCommand;
            adapter.Fill(ds, "Daul");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                Console.Write(dr[0].ToString() + "  ");
                Console.Write(dr[1].ToString());
                Console.WriteLine();
            }

طبعا أنا استخدمت Data Source=hosampc حيث أن hosampc هو اسم المخدم و يمكن وضع الــ IP (طبعا أنا جربته على Oracle XE) و إذا لم يعمل فأنت بحاجة لإعداد ما يسمى بــ Local Net service Name و هنا رابط يتحدث عن ذلك رابط و تكتب Data Source=orc1 حيث orc1 هو اسم الخدمة التي قمت بإنشائها ...

طبعا العبارة

            command.CommandText = "SELECT 1 , 2 FROM DUAL;";

هي للتجريب و يمكن كتابةالعبارة التي تريدها و تمرير البارمترات كالعادة ...

و بالنسبة لموضوعك يجب أن يكون الــuser اللي بتستخدمه للأوراكل معه سماحيات الأتصال بالقاعدة المطلوبة و عمل SELECT على الجداول (NHC_V2SEARCH_SCREEN) ..

و على فكرة .. لم نعرف مالمقصود بهذه العبارة :

REQUESTS ("REQ_ID", "REQUEST_NAME", "ID")

ملاحظة : بعض المعلومات منقولة , رابط المصدر هنا

ArabTeam_Oracle.rar

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

الاخ العزيز بالطبع انا اشكرك بشده على الرد الوافى و لى بعض الاستفسارات اتمنى من حضرتك الرد عليا ان امكن

اولا بالنسبه لجمله الاتصال على السيرفر هل ممكن استخدام جمله مثل التاليه التى استخدمها فى الاتصال بقواعد بيانات السكول

'Public cn As New SqlClient.SqlConnection("server = 192.168.4.90 ;Initial Catalog= oil ;Persist Security Info=True;User ID=sa;password=sa"

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

ارجو الرد للاهميه من فضلك

#4

السلام عليكم

اقتباس
هل ممكن استخدام جمله مثل التاليه التى استخدمها فى الاتصال بقواعد بيانات السكول

لا فالكلاس (Class) المسمى بــ SqlConnection مهمته الاتصال بقواعد بيانات Sql Server و لا يمكنه الأتصال بأوراكل ... و للإتصال بأوراكل فأنت بحاجة إلى OracleConnection (فقط استبدل SqlConnection بــ OracleConnection ) و حتى تستطيع استخدامه .. يجب إضافة ملف الــ DLL كــ Reference .. للمشروع (على فكرة ..انا رجعت للموضوع و وجدت أنه الملف Oracle.DataAccess.dll موجود في فائمة الــ References بمجرد أن تأخذ Add Reference) ..

فالكود المطلوب هو :

Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types

Public cn As New OracleConnection ("Persist Security Info=False;User ID=system;password=manager;Data Source=hosampc")

اقتباس
ثانيا عن طريق السيرفر اكسبلورر فى الفجول انا كنت بقدر اعمل اتصال بقاعدة البيانات و اشوف تركيبها ادامى يترى الكلام دا مش ممكن على الاوركل ولا ممكن على الرغم انى مش لاقى كائنات اتصال خاصه باوراكل 10

نعم ممكن من Server Explorer إلى أوراكل :

من Server Explorer نقرة يمينية على Data Connections ثم Add Connection ثم change لتغيير الــ Data Source و نختارمن القائمة Oracle DataBase ثم OK ثم ادخل اسم السيرفر (أوالــ IP ) و اسم المستخدم (في القاعدة) و كلمة المرور ... و سيعمل بإذن الله ..

طبعا شركة أوراكل عملت Tool متطورة تندمج مع الفيجوال استديو دوت نت و تقوم بالاتصال بالقاعدة ... و فيها ميزات كثيرة و يمكن تحميلها مجانا من موقع الشركة رابط و انزل في صفحة التحميل حتى تجد الشئ المناسب لك ..حسب إصدار الأوراكل عندك (10g , 11g , 9i) و حسب الدوت نت و الفيجوال استديو (.NET 2 أو ..NET 3 أو .NET 4) ...

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

الاح العزيز انا شاكر جدا اهتمامك بالرد امال بالنسبه لرد حضرتك اعلاه انا كنت عايز اوضح من جمله الاس كيو ال الموجوده نصها طبعا مع تبديل كلينت السكول مع كلينت الاوركل بعد اضافة الريفرانس المطلوبه انا فاهم دا هى الفكره ساعتها نص الجمله هيعمل علشان اعرف اجيب اتصال من الشبكه ام هناك تغير

الجزئية الثانيه فى فجول 2005 او 2008 السيرفر اكسبلور به نوعين من الكلينتات عند اختيار الاوركل كلينت بس الدعم ليهم مش لاوركل 10 حتى بعد ما انزل الكلينت من موقع اوراكل دول السؤاليين ؟؟

#6

السلام عليكم ..

اقتباس
هى الفكره ساعتها نص الجمله هيعمل علشان اعرف اجيب اتصال من الشبكه ام هناك تغير

يمكنك كتابة أي عبارة سيكوال SQL لكي يقوم السيرفر بتنفيذها ..

اقتباس
بس الدعم ليهم مش لاوركل 10 حتى بعد ما انزل الكلينت من موقع اوراكل

لا معلومات عندي ..لكن هل يفتح الاتصال مع القاعدة أم لا ؟...

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

اخي حسام انا جربت مثالك ومثالي لكن بيطلع عندي خطاء

Unable to load DLL 'OraOps10.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

المثال تاعي مرفق ارجو انك تهلب مي

يعني تساعدني :blush:

ccc.zip

تم تعديل هذه المشاركة بواسطة easy_3a3 في 29 ديسمبر 2012 في 14:43

#8

السلام عليكم ...

  1. هل انت مثبت oracle Client على الجهاز التي تشغل التطبيق عليه ؟ ما هو إصداره ؟ ما هو الإصدار الخاص بالملف Oracle.DataAccess.dll الذي تستخدمه .؟
  2. ربما انت بحاجة لتثبيت (32-bit Oracle Data Access Components (ODAC) Downloads) من هنا.

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 29 ديسمبر 2012 في 16:01

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#9

اخي انا نزلت برنامج الاولراكل

xe

Get Started With Oracle Database 11g Express Edition

بكبس على هاي الايقونة بتوديني على موقع وسجلت بالموقع وعرفة كيف اضيف تيبل

وكل شي تمام حتى ال sqlcommand line

صرت اعرف كيف اتعامل معها

بس المشكلة اني لما اروح على اربط الجداول بال visual studio واروح على الرروت تاع server explorer

بتيجي الجداول واذا ربطتها بداتا جريد ببان اسم الجداول

هلأ صار عندي غلط جديد

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.

اخي انا حملت الملف من الرابط تبعك بس لما فتحته ما دريت شو اعمل :blink:

dff.zip

#10

السلام عليكم ..

  1. واضح من الرسالة ان المشكلة في اختلاف الإصدارات .. يبدو أن الويندوز عندك 64 بت و لكنك تستخدم الـــ Oracle.DataAccess.dll الذي ارسلته أنا , و هو 32 بت .
  2. الحل الأول : أنا أفضل ان تلغي المرجع Oracle.DataAccess.dll الذي تستخدمه و تستخدم (OracleClient.dll الذي من المفروض انه مثبت ) .
    اقتباس
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.OracleClient.dll" (Where ever you have installed your .NET framework)
  3. الحل الثاني : قم بتغيير الـــ Platform Target من Any CPU الى x86 أو x64 من خصائص المشروع ثم التبويب build . (جرب الأول و إن فشل جرب الثاني)

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 29 ديسمبر 2012 في 17:09

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة