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

طريقة استخدام (use , Select , Shared) ..بشكل صحيح لاني دخت من رسائل الخطأ

بدأه Akram Brave في 9 أبريل 2009 · 17 رد · 2,334 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخي العزيز عبدالله .. تحية طيبة

الصراحة دوخني امر ( shared, select , use ) ورسائل الخطأ التي تظهر (File in use ) .. .. فطريقة استخدامها ..لم اضبطها وخاصة shared

بعد اذنك.. لو توضحلي كيفية عملها بالضبط في برنامج بسيط فيه اضافة وحذف وتعديل مع ملاحظة انه البرنامج يعمل في بيئة متعددة المستخدمين :

وليكن على سبيل المثال.. برنامج نقوم فيه بحفظ بعض البيانات الشخصية لبعض الاشخاص فيه (الاسم ، والعنوان ، ورقم الهاتف ، والعمر) في ملف اسمه ( Info_P.dbf ) .. وطريقة الاستدعاء باستخدام رقم الهاتف

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

واذا تكرمت .. شرح عمل الكود وخاصة (shred , select , use ) مع متابعتك لردودي على الموضوع..

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

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#2

عزيزي أكرم،،

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

بالنسبة لاوامر فتح الجدول، نفذ الاجراء التالي في برنامج صغير وسترى مدى سهولة الموضوع،

وكله يعتمد على File / Used في عمليات التأكد من وجود أو استخدام الجدول

 

Creating Tables if not exists:

If !File("MyTable.dbf")

		  Create Table MyTable (MyNo N(10), MyName c(20))

Create Index :

		  Index On MyNo Tag MyNo

Endif

If !File("YourTable.dbf")

		  Create Table YourTable (YourNo N(10), YpurName c(20))

ENDIF



Close Tables All



Use MyTable Order MyNo Shared In 0

Use YourTable Shared In 0



Select MyTable

Browse

Select YourTable

Browse



If !Used("MyTable")

		  Use MyTable Shared In 0

Endif



If Used('YourTable')

		  Messagebox([YourTable already used])

Endif

بالنسبة للبرنامج ان شاء الله بجهزلك اياه اليوم، وانا حاضر لكل استفسار، بس عندي استفسار عن اسلوب تخزين البيانات اللي بتستخدمه بشكل عام حاليا أو اللي ناوي تستخدمه في برنامجك

مع التحية

تم تعديل هذه المشاركة بواسطة a.jallad في 10 أبريل 2009 في 05:37

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

#3

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

العزيز اكرم،،

المرفق برنامج ستجد فيه:

  • طريقة لتحديد مسار البرنامج وقواعد البيانات والتاكد من القدرة على الاتصال بها
  • طريقة التأكد من ان الجداول مستخدمة ام لا، وطريقة استخدامها ضمن بيئة متعددة المستخدمين
  • طريقة وضع اجراء لمتابعة الاخطاء
  • طريقة استخدام نفس الجدول كــ Buffer بواسطة CursorSetProp وكيفية حفظ البيانات بواسطة TableUpdate أو الغاء التغييرات بواسطة TableRevert
  • طريقة استخدام الـ View والفلتر الخاص به ( وبالبرنامج تم استخدامه لعمل جدول يستخدم في عملية البحث، ولم استخدمه في شاشة الادخال الرئيسية )
  • طريقة لعمل تتبع للسجل الحالي ( بالنسبة لي فلا احب الاعتماد كثيرا على رقم السجل RecNo انما على Primary Key )
  • في هكذا برنامج لا اظن انك تحتاج لتتبع السجلات المضافة بواسطة تخزينها في جدول أخر فبذلك تكون قد سجلت الحركة مرتين، وبدلا من ذلك تستطيع الاعتماد على تقرير خاص بالحركات المضافة
  • ستلاحظ ان عملية تسجيل التغييرات لملف المتابعة تعتمد على رقم السجل [RecNo] الخاص به وعلى شرط ان يكون اكبر من 0 وذلك للسبب التالي : في حالة استخدام ال TableBuffering فان رقم السجل عند اضافة سجل جديد يكون -1 او -2....بالتسلسل حسب عدد السجلات المضافة، وعند عمل TableUpdate فان هذه الارقام تاخذ تسلسلها الطبيعي الموجب القيمة في الجدول، فهنا اذا كانت القيمة سالبة فلن يتم الاضافة لجدول المتابعة، اما اذا كانت موجبة فذلك يعني بان هذا السجل مضاف سابقا وان هذه العملية عبارة عن عملية تعديل تحتاج للتسجيل في جدول المتابعة
  • بنفس الفكرة تستطبع عمل تتبع لعملية الحذف حيث لم اضفها هنا
  • يمكن صياغة اجراء عملية التتبع بشكل مختزل واحترافي اكثر من المستخدم بواسطة الاعتماد على المتغيرات واسماء الحقول
  • يمكن صياغة كامل البرنامج بواسطة الاعتماد على Form Buffering وجمل Sql Insert أو طرق التخزين الاخرى

ان شاء الله انك تستفيد من البرنامج، وجاهز لاي مساعدة

مع التحية

ar.rar

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

#4

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

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

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#5

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

اخي اكرم،،

لاشكر على واجب وزي ما قلتلك بلاش استاذ ( لسه تلميذ في بحر الفوكس برو )

وبانتظار برنامجك

مع التحية

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

#6

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

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

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

USE mydata base SHARED <> USE mydata base in 3 SHARED

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#7

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

بداية وللتأكيد فبالاملثة فان :

MyDataBase تدل عادة على الــ Database

و MyTable تدل عادة على الجدول

على فرض ان الجداول محتواة ضمن Database

فان بامكاننا اجراء التالي لفتح الداتا

Open c:\MyFolder\MyDataBase shared

وعلى افتراض ان لدينا اكثر من Database مفتوحة مثلا A + B فبامكاننا وضع الامر التالي للتعامل مع جداول A

Set database to A

بالنسبة للجداول :

لماذا تغلب نفسك بتحديد وتتبع رقم Workarea دع الفوكس برو يضعها اينما يشاء فهو بجميع الاحوال سيرتبها بالتسلسل

جرب التالي في الــ Command Windows

 Set
use Table A1 shared in 0
use Table A2 shared in 0
use Table A3 shared in 0
select 1
select 2
Select A1
Select A2

اليس من الاسهل التعامل مع الاسم مباشرة بدل من تتبع الارقام ؟

مع التحية

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

#8

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

منور يا غالي على متابعتك لي .. وجاري التجريب .. وقريب نرفعلك البرنامج

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#9

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

بانتظار برنامجك اخي أكرم، والنور نورك

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

مع التحية

ar.rar

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

#10

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

اخي العزيز عبدالله .. اسف لتأخري .. بسبب ظروف عملي لكن البرنامج في اللمسات الاخيرة .. اغذرني على التاخير

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

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#11

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

اهلا اخي العزيز أكرم،،

لا داعي لأي اعتذار، فأكيد لكل منا ظروفه، وخذ راحتك مش رايحيين أي مكان :wink:

مع التحية،،

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

#12

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

الاخ عبدالله ...

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

ومراقبة للتغيرات ....

مشكور اخي العزيز .. مع خالص تحياتي

test.zip

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#13

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

عزيزي أكرم،

ما شاء الله عليك شغل جميل وسليم، وطبعا خلي في بالك بالفوكس برو ممكن توصل للنتيجة بأكثر من طريقة

حلل الفرق بين اسلوبي العمل في نموذج 1 ونموذج 2 وخبرني ؟؟؟ وخلينا نتناقش في كل نقطة غير واضحة او في سبب تغييرها.

akram.rar

مع التحية

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

#14

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

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

#15

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

مشكور يا غالي ... و تحت التجربة والمقارنة

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#16

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

الاخت hindoda

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

او غير متخصصة، انما فيها الفائدة بشكل عام

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

اخي العزيز أكرم،

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

مع التحية

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

#17

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

مشكور اخي a.jallad

لاجابتك السريعة

والحقيقة اني قراءت تقريبا كل المواضيع

و فكرت بعمل مشروع جماعي كما في المشاريع السابقة

وطرح افكار وعملها من قبل الاعضاء

#18

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

الاخت hindoda

فكرة المشاريع الجماعية جميلة ومفيدة للجميع ولكن بصراحة أفضل ان تكون مختصرة في موضوع بسيط ( من ناحية المتطلبات وليس من ناحية التقنية )

فلربما انجاز شاشة او اثنتين مع ثلاثة جداول وتقرير تكفي لوضع خطوط عريضة واضحة جدا ومتنوعة ومليئة بالمعلومة المفيدة.

وكما تعلمين فاليوم هنا وغدا العلم عند الله ( والله يرجع الشباب الغائبين عن المنتدى بالسلامة )

فكري بموضوع بسيط وابدئي على بركة الله

مع التحية

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…