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

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

مثبّترائج
بدأه Shadowz في 11 أبريل 2009 · 58 رد · 14,964 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

المهم :

للتواصل مع قواعد البيانات الاخرى لا بد من وجود وصلة خير وهي هنا نوعان 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

أستغفر الله العظيم و أتوب إليه

#2

ما سبق يدلنا على كيفية التعامل مع قاعدة بيانات 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

أستغفر الله العظيم و أتوب إليه

#3

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

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

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

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

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

أستغفر الله العظيم و أتوب إليه

#4

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

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

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

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

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

#5

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

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

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

CursorSetProp( "WHERETYPE", 4, "LocalCursor

واستخدام

go recno ()

refresh()

بعد الحفظ

وتحياتي

1
#6

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

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

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

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

مع التقدير

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

Remot.rar

تم تعديل هذه المشاركة بواسطة ammar_alsaidi في 26 مارس 2012 في 19:29

#8
ammar_alsaidi كتب:

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

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

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

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

مع التقدير

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

السلام عليكم

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

عمار،

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

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

1

أستغفر الله العظيم و أتوب إليه

#9

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

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

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

#10
Shadowz كتب:

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

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

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

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

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

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

#11
barcaman17 كتب:

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

ستجدها هنــا

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

أستغفر الله العظيم و أتوب إليه

#13
Shadowz كتب:

ستجدها هنــا

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

اخي العزيز

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

#14

أي نسخة نزلت ؟

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

أستغفر الله العظيم و أتوب إليه

#15

السلام عليكم

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة barcaman17 في 13 أبريل 2012 في 08:57

#16

السلام عليكم

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

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

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

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

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

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

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

#17

السلام عليكم

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

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

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

#18

السلام عليكم

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

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

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

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

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

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

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

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

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

للــ MSSQL ستجد

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

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

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

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

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

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

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

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

أستغفر الله العظيم و أتوب إليه

#19
Shadowz كتب:

السلام عليكم

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

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

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

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

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

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

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

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

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

للــ MSSQL ستجد

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

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

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

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

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

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

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

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

السلام عليكم

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

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

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

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

#20

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

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

تم تعديل هذه المشاركة بواسطة alaaqasem في 13 مايو 2012 في 12:11

#21
alaaqasem كتب:

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

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

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

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

#22
alaaqasem كتب:

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

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

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

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

شكرا مقدما

#24

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

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

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

#25
nabil3450 كتب:

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

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

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

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

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

 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 في 3 يونيو 2012 في 10:24

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