برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة: مشروع قواعد بيانات من الالف إلى الياء للأجهزة المحمولة - برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة

اذهب للمحتوى

  • (2 صفحات)
  • +
  • 1
  • 2
  • لا يمكنك بدء موضوع جديد
  • لا يمكنك الرد على هذا الموضوع

مشروع قواعد بيانات من الالف إلى الياء للأجهزة المحمولة اضف تقييما للموضوع ***** 1 التصويت

#1     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 29/11/2005 - 05:59 PM

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

و منذ الان فإنني اخبركم بأني لن اعدكم بإتمام المشروع حتى النهاية
فربما تمر ظروف او امور تمنعني من ذلك و لكنني يأقوم بما ييسره الله لي
و منذ الغد إن شاء الله ستكون اول مشاركة عملية
0

شارك هذا الموضوع

      

#2     غير متواجد   Wael Dalloul Icon

  • مشرف عام
  • مجموعة المشرفين القدامى
  • مشاركات 1953
  • التقييم 17
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 30/11/2005 - 10:00 AM

شيئ جميل جدا اخي
و لكن ما هي قواعد البيانات التي تستخدم على pocket pc هل هي Sql Server ce
ام هناك Access ام يتم الاعتماد على ملفات Xml لتخزين البيانات

هل سوف تستخدم VS.net لعمل التطبيق

سوف اكون معك في هذا المشروع
و إن شاء الله سوف اتعلم كيف يتم برمجة قواعد البيانات على ال Pocket pc
و شكرا لك
و ارجوا الأفادة الى الجميع
0

#3     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 30/11/2005 - 05:19 PM

سأبدأ الشرح بمقدمة عن برمجة الـ Pocket PC
برمجة البوكت هي مجال جديد من البرمجة انتشر مع انتشار الاجهزة المتنقلة (Mobile Devices)
لكنها تختلف عن البرمجة العادية بعدة نواح من أهمها اعتبارات الاداء و استهلاك الذاكرة و الحجم المستغل لمساحة التخزين نظرا للإمكانيات المحدودة للأجهزة المتنقلة مقارنة بالحواسيب الشخصي
يضاف إلى ذلك صغر المساحة المتاحة للعرض على الشاشة مما يتطلب دقة في تصميم واجهات البرنامج حتى تستغل كل نقطة على النموذج بأفضل شكل ممكن .
لغات البرمجة :
بشكل عام و بسبب محدودية أنظمة التشغيل المتاحة على الاجهزة المتنقلة لا يمكن تشغيل البرامج التنفيذية التقليدية على الاجهزة المتنقلة لكن توجد عدة لغات برمجة خاصة بالأجهزة المتنقلة من اشهرها :

لغة Embedded C++ و هي المقابل للغة C++ و ما تزال مدعومة من Microsoft و تعتبر من أقوى اللغات في هذا المجال.

لغة Embedded Visual Basic و هي المقابل للغة البرمجة Visual Basic تعتبر من اللغات السهلة
و البسيطة لإنشاء تطبيقات الاجهزة الجوالة . لكن توقف دعم هذه اللغة من Microsoft أي انه لن تطرح
اية اصدارات أو تحديثات لها

و قد اتاحت Microsoft هاتين اللغتين بشكل مجاني منذ فترة قريبة .

تقنية .Net : بإصدار Microsoft لـ .NET Framework حدثت ثورة في مجال تطوير البرمجيات
و قد طالت هذه الثورة مجال تطوير برامج الأجهزة المتنقلة حيث اطلقت Microsoft بعد فترة من اصدارها إطار العمل الخاص بالحواسيب الشخصية , اطارا خاصا بالإجهزة المتنقلة يدعى .NET Compact Framework او اختصاراً .NET CF , اتاح هذا الاطار لمبرمجي Visual Studio .NET إمكانية تطوير تطبيقات للأجهزة المتنقلة , فقد اتاحت Microsoft على موقعها تحديثا يمكن مبرمجي VS.NET 2002 من تطوير هكذا برمجيات و من ثم جاء VS.NET 2003 متضمنا لإمكانية تطوير برمجيات الاجهزة المتنقلة
و الان يأتي VS.NET 2005 مرفقا بالاطار .NET Compact FrameWork في اصدارته الثانية
و التي تعد بكثير من المزايا.

قواعد البيانات المتاحة :
يمكن تخزين البيانات على الاجهزة المتنقلة بعدة صيغ ابسطها تخزين البيانات في ملفات نصية
كما يمكن استخدام ملفات XML و قد قدمت Microsoft مع اصدارة ُEmbedded Studio أي(EVB+EC)
نسخة خاصة من ADO تدعى ADOCE و هي نسخة سهلة الاستخدام تتيح الكثير من الامكانيات لكن الدعم الخاص بها قد توقف أيضا , بعد ADOCE جاء اطلاق Microsoft لـ SQL SERVER CE
و التي كما يتضح من اسمها نسخة خفيفة من SQL SERVER و بإمكانيات محدودة لكنها تمتلك من المزايا ما يكفي لتطوير تطبقات كبيرة نسبيا حيث ان حجمها قد يصل إلى 2 جيغا بايت , و يبدأ دعم SQL CE بدأاً من
الاصدارات Window Pocket 2000 و Windows CE 3 , و يرفق VS.NET 2003 بالاصدار
SQL SERVER CE 2 , و مع إصدار VS.NET 2005 صدرت النسخة الثالثة و التي أصبحت تدعى
SQL SERVER MOBILE .


ملاحظة : لم اتطرق إلى إلى برمجة أجهزة PALM حتى لا يطول الموضوع إضافة إلى ما تعانيه برمجة PALM من صعوبات فمثلا لا يجب أن يتجاوز حجم التطبيق 64 KB و بالتالي يجب تقسيم التطبيقات الكبيرة إلى أجزاء.


سيعتمد المشروع على Visual Basic .NET 2003
و على قواعد البيانات SQL SERVER CE 2
لسببين
الأول أن الإصدارات الجديدة لا يملكها كل الناس
الثاني : أنني ما أزلت استكشف الجديد في تلك الاصدارات
0

#4     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 01/12/2005 - 05:55 PM

البدء بالمشروع :
للبدء بالمشروع لابد من تنصيب SQL SERVER CE 2 على الجهاز المتنقل
يتم هذا بطريقتين :
الأولى : عندما تنشأ مشروعا يعتمد على قواعد البيانات في VS.NET 2003 فإنه وعند ترجمة التطبيق
و من ثم نشره من خلال مربع اختيار وجهة نشر التطبيق فإن VS.NET يقوم بتفحص الهدف الذي سينشر إليه التطبيق فإذا لم تكن قاعدة البيانات موجودة يتم تنصيبها طبعا يحث هذا فقط في المرة الأولى لنشر البرنامج

Posted Image

Posted Image

قلنا ان هذا يحدث عند انشاء مشروع يعتمد على قواعد البيانات
اذا كيف اجعل مشروعي يعتمد على قواعد البيانات ؟
يتم ذلك عن طريق استيراد فضاء الاسماء System.Data.SqlServerCe إلى المشروع
و يتم ذلك كما يلي اذهب إلى القائمة Project ثم انقر على Add Reference بعد ذلك
اختر System.Data.SqlServerCe

Posted Image

الان افتح شيفرة برنامجك و اكتب في ترويسة الشيفرة
Imports System.Data.SqlServerCe


تهانينا لقد أصبح برنامجك قادرا على التعامل مع قواعد البيانات


الطريقة الثانية للتنصيب :
في الدرس القادم

تم تعديل هذه المشاركة بواسطةwalcom: 20/09/2007 - 03:33 PM
سبب التعديل: تعديل ترتيب علامات [img] و [/img]

0

#5     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 05/12/2005 - 07:08 PM

الان و بعد تنصيب Sql Server Ce على الجهاز المتنقل ننتقل للمرحلة التالية :
كيف أنشأ قاعدة بيانات و استعرض جداولها على البوكت
لإنشاء قاعدة بيانات نكتب ما يلي في البرنامج

 Dim as filePath as string ="\My Documents\BookStores.sdf"
 Dim eng As SqlCeEngine
		Try
			eng = New SqlCeEngine("Data Source=" & filePath)
			eng.CreateDatabase()
			Return True
		Catch e As SqlCeException
			MessageBox.Show("فشلت عملية إنشاء القاعدة" & Convert.ToChar(13) & filePath, "", _ MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
		Finally
			eng.Dispose()
		End Try


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

تم تعديل هذه المشاركة بواسطةبن العيد: 19/12/2007 - 06:34 PM

0

#6     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 06/12/2005 - 06:23 PM

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

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

ملف مرفق(ملفات)

  • ملف مرفق  Example.zip (22.5كيلو )
    عدد مرات التحميل : 1376

0

#7     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 24/12/2005 - 07:34 PM

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

ملف مرفق(ملفات)


0

#8     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 01/02/2006 - 10:21 PM

ِشكرا لكم إخواني الإعزاء
سنتابع في هذا الدرس ما بدأناه سيكون هذا الدرس صغيرا لكن أعدكم بدءا من الدرس القادم ستكون المقالات اكثر توسعا و تفصيلا

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

الجدول الأول
سيكون اسم الجدول PhoneBook و سيتألف من الحقول التالية :
UserID : رقم متسلسل للمشترك طبعا لم استخدم رقم الهاتف كحقل فريد لإننا نريد حفظ الارقام على مستوى عدة محافظات
و بالتالي قد تتكرر الارقام .
UserFirstName الاسم الاول للمشترك
UserLastName كنية المشترك
UserFatherName اسم والد المشترك
UserPhoneNumber رقم هاتف المشترك
UserState محافظة المشترك
UserAddress عنوان المشترك
الجدول الثاني :
سيكون اسم الجدول States و سيتألف من الحقول التالية :
StateCode : رمز المحافظة
StateName : اسم المحافظة
0

#9     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 01/04/2006 - 06:56 AM

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

الان فلنقم بانشاء قاعدة البيانات :
تقوم الدالة التالية بانشاء قاعدة البيانات حيث انه ما علينا إلا ان نمرر لها المسار الذي سيتم إنشاء القاعدة فيه
طبعا قاعدة البيانات SQL SERVER CE 2.0 هي عبارة عن ملف يملك الاحقة (SDF) .
Public Function CreateDB(ByVal filePath As String) As Boolean
        Try
            If File.Exists(filePath) Then
                File.Delete(filePath)
            End If
        Catch ex As Exception
            MessageBox.Show("Can not Delete" & filePath)
        End Try
        Dim eng As SqlCeEngine
        Try
            eng = New SqlCeEngine("" & filePath)
            eng.CreateDatabase()
            Return True
        Catch ex As Exception
            MessageBox.Show("Can not Create the Database" & filePath)
            Return False
        Finally
            eng.Dispose()
        End Try
    End Function



ملاحظة : لا تنس استيراد فضاءات الأسماء التالية :
Imports System.IO
Imports System.Data.SqlServerCe
ملاحظة : في SQL SERVER MOBILE (النسخة الأحدث من SQL SERVER CE 2.0) يمكنك انشاء القاعدة و استعراضها و إدخال بيانات إليها و اختبار الاستعلامات على كمبيوترك الشخصي من خلال بيئة VS.NET .

ملاحظة : تمتاز SQL SERVER CE 2.0 بما يلي :
- إمكانية إنشاء 249 فهرس لكل جدول , و يمكن فهرسة اكثر من عمود
- يمكن ان تصل سعة قاعدة البيانات إلى 2GB
- يمكن إنشاء 255 عمود في الجدول الواحد
- يمكن ان يصل طول الاسماء فيها إلى 128 محرف
- تدعم قيم NULL
- دعم DML و DDL
- يوجد 17 نوع للبيانات بما فيها انواع يونيكود و GUID
- يوجد مفاتيح رئيسية و ثانوية


الان اصبح بإمكاننا انشاء قاعدة البيانات في الدرس القادم سنتعلم كيف ننشأ الجداول ضمن القاعدة
0

#10     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 01/06/2006 - 12:58 PM

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

#11     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 19/07/2006 - 01:12 PM

الان نعود لنكمل على افتراض انكم قرأتم ما سبق من دروس و انكم جربتم الشيفرات و الامثلة التي وضعتها
اتوقع انكم اصبحتم متآلفين اكثر مع تطبيقات البوكت
قررت اعادة تنظيم العمل لذا الان سنبدأ المشروع بشكل عملي
شغل VB.NET 2003 و قم بإنشاء مشروع بوكت جديد قم بتسميته PhoneBook


سيظهر لك نموذج لا تقم بتغيير قياساته ابدا , سيكون نموذجنا الاساسي في المشروع , قم بضبط خاصيات النموذج كما يلي :
Name = MainForm
Text = Phone Book


قم بإضافة Class جديد للمشروع و قم بتسميته بـ DB.vb سنحصر في هذا الـ Class العمليات الاساسية على القاعدة مثل إنشاء القاعدة حتى تكون الامور منظمة واكثر وضوحا .
قم باستيراد فضائي السماء
Imports System.IO
Imports System.Data.SqlServerCe

إلى الـ Class
الان نضيف متحولا نجزن فيه مسار القاعدة كالتالي :
	Public Shared DBPath As String = "\my documents\PhoneBook.sdf"


الان نقوم بكتابة الدالة التي تقوم بإنشاء القاعدة (يمكنك ان تجعلها اجرائية Procedure اذا احببت لكنني نادرا ما استخدم الاجرائيات و افضل الدوال Functions عليها لعدة اسباب)
سيكون اسم الدالة CreateDB و ستكون كما يلي :
Public Shared Function CreateDB(ByVal filePath As String) As Boolean
		Dim result As Boolean = False
		Try
			If File.Exists(filePath) Then
				File.Delete(filePath)
			End If
		Catch ex As Exception
			MessageBox.Show("Can not Delete" & filePath)
		End Try
		Dim eng As SqlCeEngine
		Try
			eng = New SqlCeEngine("Data Source=" & filePath)
			eng.CreateDatabase()
			result = True
		Catch ex As Exception
			MessageBox.Show("Can not Create the Database" & filePath)
		Finally
			eng.Dispose()
		End Try
		Return result
	End Function


نعود الان إلى MainForm , قم باستيراد فضاء الاسماء : Imports System.IO
استدعينا فضاء الاسماء السابق لانه يتيح لنا التعامل الملفات و منها ملفات قاعدة البيانات حيث سنستخدم هذا الفضاء في عدة عمليات كالتحقق من وجود ملف القاعدة و حذفه
الان فلنتصور البرنامج : عند تشغيل البرنامج يجب ان يتم تحميل البيانات من قاعدة البيانات لكن اذا لم تكن القاعدة موجودة يجب ان نسأل المستخدم اذا ما كان يرغب بإنشاء قاعدة بيانات جديدة اذا وافق المستخدم يتم إنشاء القاعدة و يفتح البرنامج و إلا يتم الخروج من البرنامج , اذا خطوتنا الاولى هي التحقق من وجود قاعدة البيانات .
اذهب إلى MainForm و انقر عليه نقرة مضاعفة ستنتقل إلى محرر الشيفرة
عند حدث تحميل النموذج سنكتب هنا الشيفرة التي تتحقق من وجود القاعدة و إلا سنسأل المستخدم اذا ما كان يرغب بإنشاء قاعدة جديدة
سيكون الكود كالتالي :
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Try
			If (Not File.Exists(DB.DBPath)) Then
				If (MessageBox.Show("No DB" + vbCrLf + "Would you like To Create one", "DB not found", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Then
					If (DB.CreateDB(DB.DBPath)) Then
						MessageBox.Show("The DB created successfuly")
					Else
						Application.Exit()
					End If
				Else
					Application.Exit()
				End If

			End If

		Catch ex As Exception
			MessageBox.Show(ex.Message)
			Application.Exit()
		End Try

	End Sub




غدا سنكمل إن شاء الله

ملف مرفق(ملفات)

  • ملف مرفق  PB1.zip (14.82كيلو )
    عدد مرات التحميل : 464

0

#12     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 23/07/2006 - 05:48 PM

اتمنى ان تكونوا قد استفدتم من الدرس السابق , أحاول ان ابسط الامور قدر الامكان و الابتعاد عن التعقيدات و الامور النظرية التي قد تمل
الان و في هذا الدرس و بعد ان تم إنشاء القاعدة بنجاح يجب ان نقوم بإنشاء الجداول ضمن هذه القاعدة سبق و شرحت الحقول المطلوبة في مشاركة سابقة لذا سنقوم بإنشاء الدالة التي تقوم بإنشاء الجداول
لكن كما في قاعدة بيانات في الدوت نت يجب ان يكون هناك كائن اتصال يربطنا بالقاعدة المنشأة لذا سنقوم بإضافة الكائن الاتصال objCon الذي يمكننا من الرتباط بالقاعدة بعدها يمكن ان نرسل اومر إنشاء جداول للقاعدة من خلاله
اذهب إلى الـ Class الذي سميناه DB و اضف كائن الاتصال كما يلي :
	Public Shared objCon As New SqlCeConnection("Data Source=" & DBPath)

هنا حددنا ان كائن الاتصال سيرتبط مع القاعدة التي خزنا مسارها في المتحول DBPath
الان فلنقم بإنشاء دالة اسمها CreateDBTables تعيد قيمة من نوع Boolean من خلالها نقوم بإنشاء الجداول في القاعدة
سيكون لدينا متحولان من نوع String الاول : strUserTB سنضع فيه عبارة SQL لإنشاء الجدول Users
أما الثاني strStatesTB سنضع فيه عبارة SQL لإنشاء الجدول States
كما اننا سننشأ كائن SqlCeCommand من خلاله نقوم بتمرير و تنفيذ الاوامر المخزنة في المتحولين السابقين


Public Shared Function CreateDBTables() As Boolean
		Dim result As Boolean = False
		Try
			' Create Users Table 
			Dim strUserTB As String
			strUserTB = "Create Table Users ("
			strUserTB &= "UserID int primary Key"
			strUserTB &= ", UserFirstName  nvarchar(10)"
			strUserTB &= ", UserLastName   nvarchar(10)"
			strUserTB &= ", UserFatherName	nvarchar(10)"
			strUserTB &= ", UserPhoneNumber	 nvarchar(10)"
			strUserTB &= ", UserState	  int"
			strUserTB &= ", UserAddress	  nvarchar(100)"
			strUserTB &= ")"
			Dim objCmd As New SqlCeCommand
			objCmd.Connection = objCon
			objCmd.CommandText = strUserTB
			objCmd.ExecuteNonQuery()
			' Create States Table 
			Dim strStatesTB As String
			strStatesTB = "Create Table States  ("
			strStatesTB &= "StateCode  int primary Key"
			strStatesTB &= ", StateName   nvarchar(15)"
			strStatesTB &= ")"
			objCmd.CommandText = strStatesTB
			objCmd.ExecuteNonQuery()
			result = True
		Catch ex As Exception
			MessageBox.Show(ex.Message)
		End Try
		Return result
	End Function


الان سيصبح الـ Class بالشكل التالي :
Imports System.IO
Imports System.Data.SqlServerCe

Public Class DB
#Region "Parameters"
	Public Shared DBPath As String = "\my documents\PhoneBook.sdf"
	Public Shared objCon As New SqlCeConnection("Data Source=" & DBPath)
#End Region

	Public Shared Function CreateDB(ByVal filePath As String) As Boolean
		Dim result As Boolean = False
		Try
			If File.Exists(filePath) Then
				File.Delete(filePath)
			End If
		Catch ex As Exception
			MessageBox.Show("Can not Delete" & filePath)
		End Try
		Dim eng As SqlCeEngine
		Try
			eng = New SqlCeEngine("Data Source=" & filePath)
			eng.CreateDatabase()
			result = True
		Catch ex As Exception
			MessageBox.Show("Can not Create the Database" & filePath)
		Finally
			eng.Dispose()
		End Try
		Return result
	End Function

	Public Shared Function CreateDBTables() As Boolean
		Dim result As Boolean = False
		Try
			' Create Users Table 
			Dim strUserTB As String
			strUserTB = "Create Table Users ("
			strUserTB &= "UserID int primary Key"
			strUserTB &= ", UserFirstName  nvarchar(10)"
			strUserTB &= ", UserLastName   nvarchar(10)"
			strUserTB &= ", UserFatherName	nvarchar(10)"
			strUserTB &= ", UserPhoneNumber	 nvarchar(10)"
			strUserTB &= ", UserState	  int"
			strUserTB &= ", UserAddress	  nvarchar(100)"
			strUserTB &= ")"
			Dim objCmd As New SqlCeCommand
			objCmd.Connection = objCon
			objCmd.CommandText = strUserTB
			objCmd.ExecuteNonQuery()
			' Create States Table 
			Dim strStatesTB As String
			strStatesTB = "Create Table States  ("
			strStatesTB &= "StateCode  int primary Key"
			strStatesTB &= ", StateName   nvarchar(15)"
			strStatesTB &= ")"
			objCmd.CommandText = strStatesTB
			objCmd.ExecuteNonQuery()
			result = True
		Catch ex As Exception
			MessageBox.Show(ex.Message)
		End Try
		Return result
	End Function





End Class

في النموذج الرئيسي كنا قد و ضعنا في حدث تحميل النموذج الشرط الذي يتفحص القاعدة فإذا لم تكن موجودة يقوم بإنشائها , سنعدل قليلا و سنضيف بعد إنشاء القاعدة إنشاء الجداول و سيصبح حدث تحميل النموذج كالتالي:
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Try
			If (Not File.Exists(DB.DBPath)) Then
				If (MessageBox.Show("No DB" + vbCrLf + "Would you like To Create one", "DB not found", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Then
					If (DB.CreateDB(DB.DBPath)) Then
						' Open the connection with the DB
						DB.objCon.Open()
						' Create The Tables In The DB
						If (DB.CreateDBTables()) Then
							MessageBox.Show("The DB created successfuly")
						End If
					Else
						Application.Exit()
					End If
				Else
					Application.Exit()
				End If

			End If

		Catch ex As Exception
			MessageBox.Show(ex.Message)
			Application.Exit()
		End Try

	End Sub


الان اصبح برنامجنا قادرا على إنشاء قاعدة بيانات تتضمن جدولين في الدرس القادم سأشرح كيف نتعامل مع هذه القاعدة من خلال Query Analyzer
الذي ينصب مع SQL SERVER CE 2.0 مع شرح لطرق ادارة القاعدة و الاستعلامات عليها من خلاله إضافة لشرح بعض المشاكل و المحدوديات التي قد تواجهك عند استخدام SQL SERVER CE 2.0 (و التي حل معظمها في الاصدار SQL Mobile 3.0)

ملف مرفق(ملفات)

  • ملف مرفق  PB2.zip (16.56كيلو )
    عدد مرات التحميل : 402

تم تعديل هذه المشاركة بواسطةTammam Koujan: 23/07/2006 - 05:52 PM

0

#13     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 25/07/2006 - 02:35 PM

وضعت في أحد الدروس السابقة ملف PDF يشرح كيفية تنصيب SQL SERVER CE 2.0 , كما انك اذا كنت تعمل من خلال بيئة التطوير اي VS.NET فإنك بمجرد استيرادك لفضاء الاسماء System.Data.SqlServerCe
فإنه و عند ضغطك على F5 (أي تنفيذ برنامجك من خلال بيئة التطوير ) ستقوم VS.NET بتفحص المحاكي ( اذا كنت تستخدمه لاختبار التطبيقات) أو جهاز البوكت (اذا كنت تستخدم الجهاز لاختبار التطبيقات) و تقوم بتنصيب الملفات الضرورية اذا لم تكن موجودة و منها SQL SERVER CE 2.0
ملاحظة مهمة جدا : ذكرت ان VS.NET تقوم بتفحص الهدف الذي ستختبر عليه برنامجك حتى تنصب الملفات الضرورية اذا لم تكن موجودة و هذا يشمل بشكل اساسي SQL SERVER CE 2.0 و .NET Compact Framework أيضا , لكن عليك ان تنتبه انك تعمل في بيئة تطوير و العميل الذي تكتب له البرنامج قد لا يملك SQL SERVER CE 2.0 و .NET Compact Framework منصبين على جهازه لذا يجب ان ترفق مع برنامجك كلا من ملفات تنصيب SQL SERVER CE 2.0 و .NET Compact Framework

الان و بعد تنصيب SQL SERVER CE 2.0 سنتعلم اليوم عن برنامج مهم يتم تنصيبه عند تنصيب SQL SERVER CE 2.0 يدعى هذا البرنامج Analyzer Query , و اذا كنت تعمل على MS SQL Server فإنك ستجد بأنه نسخة مصغرة عن Analyzer Query الموجود في MS SQL Server لكن مع الكثير من المحدوديات لكن هناك بعض الميزات الاضافية

Posted Image

الان لتشغيل Analyzer Query عليك ان تقوم بما يلي :
1 – انقر قائمة إبدأ Start
2 – انقر إلى البرامج Prgrams

Posted Image

ابحث عن برنامج Analyzer Query كما في الصورة ثم انقر عليه

Posted Image

نلاحظ ان Analyzer Query يتألف من شريط ادوات في الاعلى يتضمن قائمتين و مجموعة ازرار تختلف بحسب المكان الذي نحن فيه , كما نجد انه يوجد للبرنامج اربع صفحات تبويب هي
Objects : من خلال هذه الصفحة يمكنك استعراض قواعد البيانات التي تم فتحها من سابق (يقوم Analyzer Query بإضافة كل قاعدة بيانات تم فتحها إلى العقدة Databases و يتم حذف القاعدة من العقدة عند حذفها أو نقلها من المكان التي كانت محفوظة فيه) يمكنك من خلال هذه الصفحة ان تستعرض اية قاعدة بيانات و جداولها و اعمدة هذه الجدوال و الفهارس كما يمكنك في هذه الصفحة ان تعدل في القاعدة كأن تضيف جدولا جديدا مثلا .
SQL : من خلا هذه الصفحة يمكنك كتابة و تنفيذ استعلامات SQL التي ترغب بتطبيقها لاختبار القاعدة او لاختبار استعلام معين قبل ان تضعه ببرنامجك
Grid : في هذه الصفحة تظهر نتائج الاستعلام الذي كتبته في الصفحة SQL
Notes : في هذه الصفحة تظهر ملاحظات على العملية التي قمت بها على القاعدة كالملاحظات الناتجة عن الخطأ عند فتح قاعدة بيانات معينة , او الملاحظات الناتجة عند تنفيذ استعلام معين كعدد السطور التي تأثرت بالاستعلام عند نجاحه أو ملاحظات تبين فشل الاستعلام مع معلومات تبين سبب المشكلة في الاستعلام

ملاحظة : قد تلاحظون ان المحاكي الذي اشرح خلاله الدرس يختلف عن المحاكي الخاص بكم حسنا انه ليس المحاكي Emulator Pocket PC 2003 SE الذي يأتي مع VS.NET 2003 افتراضيا (مشكلتي اني اعبث كثيرا و يبدو انه يوجد مشكلة في هذا المحاكي)
المحاكي الذي استخدمه في الدروس هو Windows Mobile Mobile 5.0 Pocket PC Emulator
لكن على اية حال لن يختلف الامر معكم
سنتابع بالتفصيل في الدرس القادم , قد يفشل بعضكم من خلال Analyzer Query في فتح القاعدة التي أنشأناها سابقا لا تقلقوا سنبين هذه المشكلة و نشرح اسبابها في مقدمة الدرس القادم
0

#14     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 29/07/2006 - 05:00 PM

وقفة لابد منها :
قلت لكم في الدرس السابق أن بعضكم قد يفشل في فتح القاعدة التي أنشأناها في الدروس السابقة, قبل ان نكمل في شرح Analyzer Query نتوقف قليلا عند موضوع يجب ان يعلمه كل مبرمج Pocket PC
اذهب إلى Start << Programs ثم قم بتشغيل الألة الحاسبة Calculator (لا تقلق لن نتحدث عن كيفية استخدامها) و اكتب فيها اي رقم يخطر ببالك فرضا سنكتب 123 الآن قم بإغلاق الالة الحاسبة بالنقر على الزر X
هل أغلقتها ؟ حسنا أعد تشغيلها من جديد ماذا ستلاحظ ؟
ستجد ان الارقام 123 ما تزال على حالها و ان الالة الحاسبة لم تقم بمحي هذه الارقام عند إغلاقها
في الحقيقة إن نقرك للزر X لم يقم بإغلاق الالة الحاسبة بل قام بطيها Minimize
هل هذه مشكلة في النظام أم اللغة ؟ في الحقيقة لا هذا و لا ذاك لكن بحسب طبيعة نظام التشغيل الذي صمم للعمل بشكل دائم و متواصل فإن الاعتبار الاساسي للبرامج التي تعمل عليه هو أنها ستعمل بشكل دائم لذا فالزر الافتراضي للنموذج هو زر التصغير X و هذا ينطبق على بقية النماذج في البرنامج لذا عليك الانتباه إلى طريقة
التعامل مع النماذج لأن الذاكرة المستهلكة من قبل البرنامج لها أهميتها في تطبيقات الـ Pocket PC
اذا كيف أغلق برنامجي ؟ هنالك عدة طرق أسهلها أن تذهب إلى الخاصية MinimizeBox للنموذج و تضبطها على False عندها سيتحول الزر X للنموذج غلى الزر OK و هو الزر الذي يقوم عمليا بعملية إغلاق النموذج


حسنا ما علاقة كل هذا بموضوعنا ؟ قلت سابقا أن البعض قد لن يستطيع أن يفتح عن طريق Analyzer Query قاعدة البيانات التي أنشأناها في الدروس السابقة
قم بتشغيل آخر برنامج قمنا بكتابته اذا كانت القاعدة غير موجودة سيسألك إن كنت تريد إنشاء قاعدة جديدة انقر على موافق , سيتم إنشاء قاعدة جديدة
انظر إلى شيفرة البرنامج و انتبه للسطر التالي في حدث تحميل النموذج :

DB.objCon.Open()


هذا السطر يعني أننا فتحنا اتصالا مع قاعدة البيانات من خلال الكائن objCon
أغلق (أطو) النموذج الآن بالنقر على الزر X اذهب إلى المجلد My Documents ( على جهاز البوكت و ليس على جهازك الشخصي :D )

ستجد القاعدة PhoneBook التي أنشأناها انقر على القاعدة (عند تنصيب SQL SERVER CE 2.0 يصبح Analyzer Query هو البرنامج الافتراضي الذي تفتح به ملفات sdf)

Posted Image

حالما تنقر على القاعدة ستظهر لك الصورة التالية :

Posted Image

هذه الرسالة تعني أنه لن تتمكن من فتح القاعدة لأن برنامجا آخر يتصل بها , و هذا صحيح لأن البرنامج PhoneBook ما يزال يعمل (هو مطوي الان) و ما يزال الاتصال قائما بينه و بين القاعدة , و في الاصدارة 2.0 من SQL SERVER CE لا يمكن فتح سوى إتصال واحد بقاعدة البيانات و اذا اراد برنامج التصال بالقاعدة لابد من قطع اية اتصال يستخدمه برنامج آخر , هذه المشكلة من محدوديات SQL SERVER CE و التي تم حلها في الاصدارة SQL SERVER MOBILE
الان لإغلاق الاتصال لابد من إغلاق برنامجنا فعليا ذكرنا سابقا كيف يتم ذلك من خلال خاصيات النموذج
كما انه يمكن ان نضع زر و نكتب فيه Application.Exit()
لكن برنامج الان مطوي و لا يمكن الوصول إليه لإغلاق برنامجك و تفريغه من الذاكرة قم بما يلي : انقر Start << SETTING إذهب إلى الصفحة System و
انقر غلى الايقونة Memory ثم اذهب للصفحة Running Programs
ستشاهد جميع البرامج التي تعمل (مثل Task Manager في ويندوز)
حدد PhoneBook و انقر Stop عندها سيتم إغلاق البرنامج (تطرقت لهذه الناحية بشكل مقصود أيضا لتعرف كيف توقف البرنامج اذا ما واجهتك مشاكل)
الان عد و انقر على القاعدة ستجد أنها ستفتح بنجاح

Posted Image

ملاحظة مهمة :نفس الفكرة تنطبق على Analyzer Query لن يستطيع برنامجنا الاتصال بالقاعدة ما دامت متصلة بـ Analyzer Query لذا عليك أن توقف هذا الاتصال إما من خلال إغلاق Analyzer Query من
خلال القائمة Tools الامر Exit أو النقر على الزر
Posted Image
تذكر ان مشكلة الاتصال الوحيد بالقاعدة تم حلها في SQL SERVER MOBILE


نلتقي في الدرس القادم

تم تعديل هذه المشاركة بواسطةTammam Koujan: 29/07/2006 - 05:11 PM

0

#15     غير متواجد   hisoft2010 Icon

  • عضو جديد
  • مجموعة اعضاء جدد
  • مشاركات 1
  • التقييم 0
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

ارسل ايقونة  تم الارسال 30/03/2007 - 06:20 PM

View PostTammam Koujan, on Jun 1 2006, 11:58 AM, said:

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

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

#16     غير متواجد   تمام كوجان Icon

  • مشرف قسم برمجة الأجهزة المحمولة بتقنية الدوت نت
  • مجموعة المشرفين القدامى
  • مشاركات 749
  • التقييم 1
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 30/03/2007 - 06:50 PM

ستتم التكملة قريبا ان شاء الله
0

#17     غير متواجد   alsanawi Icon

  • عضو جديد
  • مجموعة اعضاء جدد
  • مشاركات 7
  • التقييم 0
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 10/04/2007 - 10:30 AM

بارك الله فيك أخ تمام
ومنتظرين تكملة المشروع
بس هل ممكن تشرح كيفية تحميل SQL Server CE
على الــ PDA + تحميل الــ Compact FrameWork
0

#18     غير متواجد   prosed75 Icon

  • عضو
  • مجموعة اعضاء
  • مشاركات 67
  • التقييم 0
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 20/05/2007 - 07:41 PM

السلام عليكم
أخي تمام كوجان ، من خلال تقديمك للدرس

Quote

فإنه و عند ضغطك على F5 (أي تنفيذ برنامجك من خلال بيئة التطوير ) ستقوم VS.NET بتفحص المحاكي ( اذا كنت تستخدمه لاختبار التطبيقات) أو جهاز البوكت (اذا كنت تستخدم الجهاز لاختبار التطبيقات) و تقوم بتنصيب الملفات الضرورية اذا لم تكن موجودة و منها SQL SERVER CE 2.0


الدرس واضح جدا ، هذا من جانب المحاكي -- F5 --
لكن كيف لي أن أقوم بتنصيب البرنامج على جهاز البوكات حيث أنني لا أجد طريقة لتجميع البرنامج Publiching أو إنشاء Setup

و هل يمكن أن أعتبر المبايل أحد أجهزة البوكات. والمنطق نعم . لكن سمعت الكثير عن عدم VB.Net من عدم قدرته على برمجة المبايلات
0

#19     غير متواجد   بن العيد Icon

  • مشرف منتدى الأجهزة الكفية
  • مجموعة المشرفين القدامى
  • مشاركات 2385
  • التقييم 61
  • النقاط المتوفرة 14.00
  • 8.00
    النقاط المحصلة
++

تم الارسال 19/07/2007 - 03:37 PM

السلام عليكم

Quote

لكن كيف لي أن أقوم بتنصيب البرنامج على جهاز البوكات حيث أنني لا أجد طريقة لتجميع البرنامج Publiching أو إنشاء Setup

Quote

بس هل ممكن تشرح كيفية تحميل SQL Server CE
على الــ PDA + تحميل الــ Compact FrameWork

بإمكانك تحميلSQL Server 2000 Windows C Edition version 2.0 من هنا وقم بتنصيبه بالشكل المعتاد في حاسوبك
ومراحل التنصيب مشروحة في الملف المرفق في إحدى المشاركات السابقة
التنصيب يكون في الحاسوب وليس حاسوب الكف
0

#20     غير متواجد   Egy_Prog Icon

  • عضو جديد
  • مجموعة اعضاء جدد
  • مشاركات 4
  • التقييم 0
  • النقاط المتوفرة 6.00
  • 0.00
    النقاط المحصلة
++

تم الارسال 24/12/2007 - 05:28 PM

أخى الكريم
ماذا لو ارادنا تحويل البيانات من sql server ce الى sql server
اى هل يمكن ربط البوكيت ب sql server 2000
شكرا
0

شارك هذا الموضوع


  • (2 صفحات)
  • +
  • 1
  • 2
  • لا يمكنك بدء موضوع جديد
  • لا يمكنك الرد على هذا الموضوع

( 1 ) عضو يشاهد هذا الموضوع
( 0 ) الأعضاء, ( 1 ) الزوار, ( 0 ) عضو بدخول مخفي




لإفضل مشاهدة للمنتدى إستخدم مستعرض فايرفوكس
Free PageRank Checker

 الآن ... إستايل خاص لمن يملك هاتف iPhone  ... لتنزيل البرنامج  اضغط هنا