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

كيفية تحديث البيانات وتخزينها على الانترنت

مغلق
بدأه MR^King في 12 أغسطس 2006 · 11 رد · 2,991 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

أخواني للتحدث عن كيفية ارسال واستقبال بيانات عبر الانترنت يجب ان يكون لدينا فكرة بسيطة عن قواعد بيانات MySQL هذا النوع من قواعد البيانات له ما يميزه قواعد بيانات SQL Server

لأنها تعمل على نظام ويندوز وأنظمة *nix يتم التعامل مع هذا النوع من قواعد البيانات غالبا عن طريق سكربتات وبرامج توضع على نفس السيرفر ومثال على ذلك نذكر جميع المنتديات الموجودة على الانترنت بما فيها هذا المنتدى.

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

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

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

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

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

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

وهذا هو أفضلها من وجهة نظري freehostia.com قم بالتسجيل فيه وبعد ذلك قم بعمل قاعدة بيانات وسوف يصلك على بريدك اسم قاعدة البيانات وعنوان سيرفر الـ MySQL والباسورد ...الخ

==================

ندخل في تفاصيل الموضوع..

أولا يجب ان تقوم بتثبيت الدرايفر الخاص بقواعد بيانات MySQL وستجده في موقعها الرسمي http://dev.mysql.com

قم بتحميله وتثبيته على جهازك

بالطبع يعرف الجميع ان تقنية ADO تحتاج للـConnection String الخاص بنوع قاعدة البيانات التي سيتم التعامل معها

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

Cn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=MySql.Hostnam.com;DATABASE=DataBase_Name;UID=User_Name;PWD=PassWord;OPTION=16427"

حيث أن :

MySql.Hostname.com == اسم سيرفر قاعدة البيانات ( يجب ان تفرق بين اسم السيرفر وبين سيرفر قواعد البيانات)

DataBase_Name == اسم قاعدة البيانات

User_Name == هو اسم المستخدم على هذا السيرفر

PassWord == كلمة المرور

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

السؤال الذي طرحه أعضاء المنتدى وهو كيف يمكن استقبال او ارسال بيانات من خلال الانترنت ؟

في الحقيقة يظن الكثير من الناس انه شئ صعب ولكنه أسهل مما نتخيل

اولا نصيحة مني لا تجعل برنامجك يعمل على قاعدة البيانات الموجودة على الانترنت فقط ... لماذا ؟

لأسباب كثيرة أهمها ان البرنامج سيكون بطئ جدا جدا تخيل انه لو حتى وضعت كود مثل Rs.MoveNext فان المستخدم عليه الانتظار قليلا لكي ينتقل المؤشر للسجل التالي وطبعا لن تجد أحد لديه طاقة لتحمل هذا

فكرتي هنا في هذا المثال تعتمد على قاعدتين بيانات

الاولى : من نوع أكسس (او غيرها) بشرط انها تكون مثبتة على جهاز المستخدم

الثانية : قاعدة بيانات MySQL وهي الموجودة على الانترنت

القاعدة الاولى هي الاساس فهذه القاعدة سيتعامل معها المستخدم في كل شئ

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

ندخل الى الكلام عن طريق الكود...

اولا يجب ان تكون قد صرحت عن RS, RS2

RS2 يتعامل مع قاعدة البيانات الموجودة على جهاز المستخدم بينما RS يتعامل مع MySQL

نفترض اننا وضعنا زر اسمه تحديث البيانات .. تحت هذا الزر سيتم السيناريو الاتي :

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

RS.Open "select * from Access_Table", DB, adOpenDynamic, adLockOptimistic

وهنا توجد حالتين :

الاولى : انك ستقوم بتحديث الجدول لأول مرة وهذا امر سهل

الثانية : انه يوجد لديك بيانات مسبقا وستقوم بتحديث البيانات الجديدة فقط

في الحقيقة ان الحالة الثانية تشمل الأولى والحالة الأولى تشمل الثانية ... كيف ؟

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

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

RS2.Open "select * from MySQL_Table", DB, adOpenDynamic, adLockOptimistic

نأتي لأهم جزء في عملية التحديث..

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

وفي نفس الوقت يقوم RS بقراءة سجل من الموجود لديه ثم يتم تخزين القيمة الموجودة في RS2 في السجل الجديد الذي تم اضافته بواسطة RS2 وهذا ما يعرف بعملية الـ Update

وسيكون الكود كما يأتي..

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

وذلك حتى يتم اضافة السجلات الجديدة فقط

Do While Not RS.EOF
	RS.MoveNext
	If RS.EOF Then Exit Sub
	If RS("code") = MIR Then GoTo CO
Loop
CO:

ويمكن استخدام الكود السابق بكود بحث وسيكون ذلك أسرع بالطبع

وهنا تتم عملية نقل البيانات الى قاعدة بيانات المستخدم

Do While Not RS.EOF
	RS2.AddNew
	RS2("code") = RS("code")
	RS2("adrs") = RS("adrs")
	RS2("dat") = RS("dat")
	RS2("note") = RS("note")
	RS2.Update
Loop
RS.MoveNext

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

RS2.MoveLast
	Label1.Caption = RS2("code")
	Text2 = RS2("adrs")
	Text6 = RS2("dat")
	Text4 = RS2("note")

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

-------------------------------

ملاحظات :

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

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

- الأكواد الموضوعة في الموضوع تعتبر بطيئة لذلك أنصح بالبحث عن أكواد تكون أسرع في التنفيذ لأن ذلك سيقلل من وقت ارسال واستقبال البيانات

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

---------------

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

وأتمنى اكون أفدتكم بشئ ولو بسيط

===========

الى اللقاء

تم تعديل هذه المشاركة بواسطة MR^King في 12 أغسطس 2006 في 17:50

JusT LeT YouR MinD WorK

#2

أخى كينج شكرا عالموضوع لقد كان لى نفس تجربتك وقد وجدت موقعا آخر مجانى وغير محدود:

http://free-mysql.bizhostnet.com

#3

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

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

تخيل تلك المميزات التالية في موقع مجاني

Absolutely FREE
 Data storage: 250 MB
 Monthly bandwidth: 5 GB
 Hosting for 1 domain
 5 subdomains
NO ADS 		   Perl enabled
 PHP enabled
 1 MySQL database
 10 MB MySQL DB space
 PHPMyAdmin
 Over 3,000 Perl modules

 3 POP3 accounts
 3 Email aliases
 SpamAssassin protection
 E-mail filters
 Webmail service
 POP3 access/no SMTP
 "Catch-all" emails 	 Elefante free scripts (?)
 FrontPage extensions
 SSL with certificate gen
 SSI (Server Side Includes)
 Web-based file manager
 Advanced Control Panel
 Instant account activation
 Easy upgrade options
 Multilanguage control panel

بصراحة كان عندي قائمة بمواقع لهذا الغرض ولكن وجدت هذا أفضلها

شكرا لك على اهتمامك

تمنياتي لك بالتوفيق

==============

الى اللقاء

JusT LeT YouR MinD WorK

#4

السلام عليكم

أخى العزيز MR^KING

موضوع رااااااائع ومتميز كعادتك

وانا كنت فى أنتظاره فقد وعدتنا به منذ فتره

وها انت تفى بوعدك

وإن شاء الله سوف اقوم بتجربته قريبا للبدء فى مناقشه الموضوع

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

وفى أنتظار تفاعل باقى الأعضاء بأذن الله

Never Give Up You Are Programmer

Being Genius Is The Step Before Madness

Artificial Intelligence Is No Match For Natural Stupidity

#5

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

شكرا لك اخي GENIUS-IT على كلامك الجميل

واتمنى انه يفيدك

وبانتظار المناقشة وأي اسألة ان شاء الله

بالتوفيق :)

============

الى اللقاء

JusT LeT YouR MinD WorK

#6

أخيرا موضوع جديد في المنتدي ..

مش عارف ليه المنتدي نايم طوال فترة الاجازة .. وبينشط فقط في الدراسة..

مشكور علي الموضوع..

#7

جزاك الله كل خير ورحم الله والدايك

ولكن يا اخي الكريم

احتاج توضيح اكثر ...

مثل هل استخدم الداله ADO

وكيف اربطها مع قاعدة البيانات حقت الموقع My SQL

وهل فيه اعدادات معينه في الموقع اعملها

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

هذا ما عندي وجزاكم الله كل خير على اما تقدموه

#8

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

اخي الكريم طبعا واضح اني استخدمت تقنية الـADO

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

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

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

تمنياتي بالتوفيق

=================

الى اللقاء

JusT LeT YouR MinD WorK

#9

جزاك الله كل خير يا اخي الغالي

ولكن عندي مشكله في الموقع

تظهر لي هذه الرسالة

You are not allowed to sign-up. Your IP/IP range has been blocked due to abuse.

The web hosting services are provided by Freehostia.com, orders paid through 2Checkout.com will be sold by 2CheckOut.com Inc. (Ohio, USA).

وبالنسبه لرابط حق البرنامج ماني عرف انزل البرنامج لا انه في برامج كثيره ولاانظمه كثيره حسب ما فهمت

ممكن تفيدني اخي الكريم اكثر واكثر

وتقبل خالص تحياتي

#10

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

اخي الكريم واضح من الرسالة ان الشركة منعت التسجيل من دولتك "لا اعرف من اي دولة انت بالظبط"

اما الرابط الذي وضعته فهو فيه الدرايفر الخاص بـ MySQL لكي تستطيع استخدامها مع تقنية الأدو

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

وهو مرفق مع هذا البرنامج على الوصلة التالية

http://www.arablycos.com/~mando/Mircales.htm

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

ولا تنسى جوجل فهو سيفيدك كثيرا في هذا الشأن

تمنياتي بالتوفيق

============

الى اللقاء

JusT LeT YouR MinD WorK

#12

بارك الله فيك

كنت اجهز لاطرح سؤال عن هذا الموضوع

فجاء الجواب منك فجزاك الله خير الجزاء

هذا الموضوع مغلق.

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