• 0
a.jallad

التعامل مع قواعد البيانات الاخرى Sql – Mysql – Mdb من خلال الفوكس برو

سؤال

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

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

علما بانه علاقتي بالثلاثة قواعد المذكورة اعلاه علاقة وثيقة لا تتجاوز المعرفة بالاسم والحمد لله

المهم :

للتواصل مع قواعد البيانات الاخرى لا بد من وجود وصلة خير وهي هنا نوعان ODBC و OLEDB

ويمكن تحميل النوعان من موقع Microsoft

ولان للفوكس برو دائما اكثر من طريقة لانجاز وحل الواجبات سأشرح هنا طريقة طريقة التعامل عبر Connection String

تسلسل الاحداث يقع ضمن البنود التالية:

انشاء اتصال مع قواعد البيانات ( بواسطة ODBC او OLEDB Provider )

سحب ما تريد من بيانات لجهازك

معالجة هذه البيانات بعمليات التعديل او الحذف او الاضافة او لمجرد استخراج تقرير....

حفظ البيانات بعد التأكد من عدم وجود مشاكل

اغلاق الاتصال

انشاء اتصال ( Sqlstringconnect )

lcConnection = [Driver={Microsoft Access Driver (*.mdb)};DBQ=MyData.mdb;UID=Admin;PWD=pas]
oConn=Sqlstringconnect(lcConnection)
if oConn<0
Not Connected
Else
oConn= Connection No
endif

سحب البيانات للفوكس برو ( SQLExec )

 lnCmd=SQLExec(oConn, "SELECT * FROM Emp ", "LocalCursor")
if lnCmd < 0
Error
Else
Cursor is ready
endif

تجهيز الــ Cursor لارسال التعديلات للجدول الرئيسي بواسطة الامر CursorSetProp

CursorSetProp( "TABLES", "MyData.Emp", "LocalCursor" ) تحديد الجدول
CursorSetProp( "KEYFIELDLIST", "EmpNO", "LocalCursor" ) تحديد المفتاح الرئيسي
CursorSetProp( "UPDATABLEFIELDLIST", "EmpName, EmpTel", "LocalCursor") قائمة المتغيرات
CursorSetProp( "UPDATENAMELIST", "EmpNO MyData.Emp.EmpNO, EmpName MyData.Emp.EmpName, EmpTel MyData.Emp.EmpTel", "LocalCursor" ) قائمة الحقول التي سيتم التخزين فيها
CursorSetProp( "WHERETYPE", 1, "LocalCursor" ) لاختيار نوع الحفظ
CursorSetProp( "SENDUPDATES", .T., "LocalCursor" ) لقبول ارسال البيانات للجداول
CursorSetProp( "Buffering", 5, "LocalCursor" ) لتحديد الية التعامل مع السجلات وطريقةحجزها

الان الـــ Cursor جاهز ويتم التعامل معه كأي جدول فوكس برو عادي

وبعد الانتهاء من العمل يتم حفظ التعديلات باستخدام الامر TableUpdate

Local llOk
llOk = Tableupdate( .T., .T., 'LocalCursor' )
If llOk
Done…
Else
Error while saving….
Tablerevert( .T., ' LocalCursor' )
Endif

واخيرا الغاء الاتصال باستخدام الامر SQlDisconnect

SqlDisconnect(oConn)

والمثال المرفق يوضح العمليات السابقة عن طريق الربط مع قاعدة بيانات Access

Remot.rar

مع التحية

ويتبع ان شاء الله

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

57 إجابة على هذا السؤال .

  • 0

ما سبق يدلنا على كيفية التعامل مع قاعدة بيانات Access

وكل ما تم تطبيقه يمكن ان يطبق على قواعد البيانات الاخرى مثل Sql - MySql وحتى قواعد بيانات أو جداول الفوكس برو نفسها، وتبقى جميع الاوامر كما هي باستثناء تعريف Connection String على النحو التالي

MySQL

lcConnection  = [Driver={MySQL ODBC 5.1 Driver};Port=3306;Server=MyServer;Database=MyDataBase;Uid=root;Pwd=MyPassword]

SQL

lcConnection  = [Driver=SQL Server;Server=(local);Database=MyDataBase;UID=sa;PWD=sa]

VFP

lcConnection=[Driver=Visual FoxPro Database;UID=;PWD=;SourceDB=MyDataBase.dbc;SourceType=DBC;Exclusive=No;Backgroun
dFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes]

DBF

lcConnection=[Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=MyDirectory]

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

للملاحظة : يأتي مع برنامج الـــ Vfp9 نسخة Sql Server MSDE

وتحتاج لتنصيبها تزويد برنامج التنصيب الخاص بها بكلمة مرور

فبالامكان استخدام الامر التالي :

c:\Setup SAPWD="Your Password" /L*v C:\MSDELog.log

طبعا من الــــ Dos ومن مجلد البرنامج

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

[السلام عليكم

شكرا جزيلا أخي الفاضل على هذه المعلومات القيمة والتي قراتها في هذا الوقت مع انك كتبتها من فترة غير قريبة

انا استخدم SQL server كمجهز قواعد بيانات وظهرت عندي مشكلة عندما استخدم الطريقة المذكورة عندما يكون هناك اكثر من مستخدم ، فعندما يدخل المستخدم الاول ويعمل تغيرات ويدخل المستخدم الثاني ويعمل تغييرات ايضا ، فعندها تخزن البيانات التي يعمل المستخدم لها حفظ اولا والمستخدم الاخر تفشل عنده عملية الحفظ واعتقد ان السبب هو ان صورة (الكورسر) سوف تكون مختلفة عن الجدول المصدر عند محاولة تحديث بيانت المستخدم الثاني.

اذا لم يكن هذا السبب ، فما هو السبب؟؟ وكيف يكون الحل؟؟؟

تحياتي الحارة لك اخي الفاضل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الحمد لله وجدت الحل

وللاسفادة ......

الحل يكمن في استخدام

CursorSetProp( "WHERETYPE", 4, "LocalCursor

واستخدام

go recno ()

refresh()

بعد الحفظ

وتحياتي

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاخ العزيز Shadowz و muhnd-vfp

شكراً جزيلاً على مساعدتكم وعاشت ايدك اخونا Shadowz على الشرح والبرنامج الرائع ولكن عند تبديل الاكسس بالسيكوال سيرفر يقوم بالربط ويفتح الجدول الذي يحتوي البيانات ونضغط على اضافة او تعديل ونقوم بتعديل البيانات ولكن عند الضغط على الحفظ يرفض الحفظ.

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

لقد حاولت كثيراً دون جدوى لذا ارجو مساعدتكم واكون شاكراً لكم

مع التقدير

اخوكم عمار السعيدي

Remot.rar

تم تعديل بواسطه ammar_alsaidi
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تحياتي للاخ عبدالله المبدع

واتمنى وصول فكرة للجميع

تحياتي للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاخ العزيز Shadowz و muhnd-vfp

شكراً جزيلاً على مساعدتكم وعاشت ايدك اخونا Shadowz على الشرح والبرنامج الرائع ولكن عند تبديل الاكسس بالسيكوال سيرفر يقوم بالربط ويفتح الجدول الذي يحتوي البيانات ونضغط على اضافة او تعديل ونقوم بتعديل البيانات ولكن عند الضغط على الحفظ يرفض الحفظ.

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

لقد حاولت كثيراً دون جدوى لذا ارجو مساعدتكم واكون شاكراً لكم

مع التقدير

اخوكم عمار السعيدي

السلام عليكم

اهلا بمهند وعمار وفراس

عمار،

قم بازالة MyData من كافة أوامر CursorSetProp

أي تعامل مع جدول الـ Emp مباشرةً

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً جزيلاً على سرعة الاستجابة

لقد ازلت اسم الداتابيز وتعاملت مباشرة مع الجدول وعملت بشكل صحيح دون مشكلة

عاشت ايدك وشكراً جزيلاً مرة ثانية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

للملاحظة : يأتي مع برنامج الـــ Vfp9 نسخة Sql Server MSDE

وتحتاج لتنصيبها تزويد برنامج التنصيب الخاص بها بكلمة مرور

فبالامكان استخدام الامر التالي :

c:\Setup SAPWD="Your Password" /L*v C:\MSDELog.log

طبعا من الــــ Dos ومن مجلد البرنامج

الاخ العزيز هل يمكن ان ترفع لنا نسخة Sql Server MSDE لنتمكن من الاستفادة منها و المتابعة مع الدروس جزاكم الله خيرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاخ العزيز هل يمكن ان ترفع لنا نسخة Sql Server MSDE لنتمكن من الاستفادة منها و المتابعة مع الدروس جزاكم الله خيرا

ستجدها هنــا

ابحث أيضا عن MSSQL EXPRESS

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا للمتابعة اخي عبد الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ستجدها هنــا

ابحث أيضا عن MSSQL EXPRESS

اخي العزيز

شكرا للتعاون تم تنزيل البرنامج لكن يظهر خطا في التصيب هلا تفضلت وشرحتها لنا تفصيليا مع الشكر والتقدير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أي نسخة نزلت ؟

وما هو الخطأ الذي يظهر ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

النسخة هي sql server 2000 enterprise

لايوجد خطا بالمعنى الحرفي للكلمة لكن النسخة الي نزلت ليست كلملة يتنصب منها الـ client tr فقط ولم استفد منها

وبالمناسبة لدي نسخة 2005 نزلت مع تنصيب visual studio 2008 لكني لااعرف كيف استخدمها

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

مع الشكر الجزيل

تم تعديل بواسطه barcaman17
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخي العزيز عبد الله

موضوعك جميل ومستوفي الفكرة والعمل

واطلب منك اكمال المثال remot من حيث ربط بقواعد sql واخر بربط mysql (لو كان عندي حاليا قواعدج البيانات المذكورة لشاركتك في الموضوع ولكن اعذرني)

اي ولو كان في نفس المثال remot

والغاية من طلبي هذا جعل الموضوع متكامل 100% مع مشاركتك الاوولى والثانية

ولغرض تثبيت الموضو ع للاستفادة منه عند طلب بخصوص الربط

تحياتي لك وللجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخواني الخبراء

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

مع الشكر الجزيل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

قد لا يسعفني الوقت حاليا لتنظيم هكذا موضوع،

ولكن هذا لا يعني أن لا تبدأ...وان شاء الله بساعدك بأي نقطة تصعب عليك

أمامك هنا موضوعان :

الأول : التعامل مع السيرفر وقواعد البيانات والجداول ( وله نسبة 80% من الموضوع )

الثاني : التواصل مع السيرفر والجداول من خلال الفوكس برو ( وله نسبة 20% من الموضوع )

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

لذا ولتبدأ بداية صحيحة عليك أن تضع الفوكس برو جانباً ( وتبدأ بالنقطة الأولى ) وتتجه لمنتدى الـ MSSQL أو MYSQL

اقرأ حول طريقة تثبيت السيرفر وابحث عن الأدوات المناسبة للتعامل مع قواعد البيانات

بالنسبة للأدوات اللازمة :

للــ MSSQL ستجد

Microsoft SQL Server 2008 Management Studio Express أو أي اصدار آخر منه

أما بالنسبة للـ MYSQL ( وبالمناسبة هو ما اعتمد عليه )

فستجده هنــا ( ستحتاج على الأغلب نسخة Windows (x86, 32-bit), MSI Installer )

وستجد أيضا برنامج الـ Workbench الخاص به هنا ( قم باختيار الـ MSI Installer ايضا )

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

ومن بعدها سيكون الانتقال الى النقطة الثانية أسهل بكثير ( ولنا حينها حديث آخر باذن الله )

ملاحظة النسب أعلاه ( هي تقديري الشخصي للموضوع )

مع التحية للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

قد لا يسعفني الوقت حاليا لتنظيم هكذا موضوع،

ولكن هذا لا يعني أن لا تبدأ...وان شاء الله بساعدك بأي نقطة تصعب عليك

أمامك هنا موضوعان :

الأول : التعامل مع السيرفر وقواعد البيانات والجداول ( وله نسبة 80% من الموضوع )

الثاني : التواصل مع السيرفر والجداول من خلال الفوكس برو ( وله نسبة 20% من الموضوع )

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

لذا ولتبدأ بداية صحيحة عليك أن تضع الفوكس برو جانباً ( وتبدأ بالنقطة الأولى ) وتتجه لمنتدى الـ MSSQL أو MYSQL

اقرأ حول طريقة تثبيت السيرفر وابحث عن الأدوات المناسبة للتعامل مع قواعد البيانات

بالنسبة للأدوات اللازمة :

للــ MSSQL ستجد

Microsoft SQL Server 2008 Management Studio Express أو أي اصدار آخر منه

أما بالنسبة للـ MYSQL ( وبالمناسبة هو ما اعتمد عليه )

فستجده هنــا ( ستحتاج على الأغلب نسخة Windows (x86, 32-bit), MSI Installer )

وستجد أيضا برنامج الـ Workbench الخاص به هنا ( قم باختيار الـ MSI Installer ايضا )

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

ومن بعدها سيكون الانتقال الى النقطة الثانية أسهل بكثير ( ولنا حينها حديث آخر باذن الله )

ملاحظة النسب أعلاه ( هي تقديري الشخصي للموضوع )

مع التحية للجميع

السلام عليكم

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

اما بالنسبة للاخ barcaman17

اذكر المشكله التي تواجهك وان شاء الله سوف نحلها معاً

تحياتي للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الابناء الاعزاء

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

تم تعديل بواسطه alaaqasem
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الابناء الاعزاء

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

انا بالخدمة استاذ ان شاء الله بس اتفرغ اعمله فهو بسيط

تحياتي لك وللجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الابناء الاعزاء

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

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

ربناي وفقكم للخير

شكرا مقدما

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ان شاء الله

ولو تفضلت وعملت لنا شاركتنا الفكرة او مثال توضيحي لغرض النقاش وتطويرة

تحياتي استاذ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استاذي العزيز

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

وشكرااااااااا على المجهود الكبير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استاذي العزيز

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

وشكرااااااااا على المجهود الكبير

اخي العزيز السلام عليكم

طريقة الاتصال هي نفسها مع التعديل لقاعدة البيانات المراد الربط معها لاحظ طريقة الاتصال باوراكل

 connectoracle = SQLSTRINGCONNECT(STRCONN)
&& in that: STRCONN is string connection
STRCONN= "UID= ?;PWD=?;DRIVER={Microsoft ODBC For Oracle}; SERVER=?"
&& username is ?
&& password is ?
&& server is ?

او

Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

او

SqlConnectString="Driver={Microsoft ODBC for Oracle};Server=Xe; Uid=myID;Pwd=mypassword;"

Handle=SQLSTRINGCONNECT(SqlConnectString)

اما باقي الخطوات فهي نفسها في الاستدعاء والتعديل عليها

تحياتي للجميع

تم تعديل بواسطه lion iraq
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور اخي

وجزاك الله الف خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

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



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .