المتابعون للمدونة

الأحد، 28 مايو 2017

حكايات قديمة مكررة


حكايات قديمة مكررة 

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

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

عايشين نخبي ضعفنا
من خوف قلوبنا إننا
في مواجهة نخسر نفسنا
ونضيع في لحظة مننا وسط التلوج 

يا ضِلّ ضَلّ على الطريق
باكية الخطى من غير رفيق
قلب البريء خدعه البريق
قصة قديمة مسطرة متكررة من ألف فوج 

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

عند الحنين
طوابير طويلة من الألم متجمعين
مُستعبدين زي الزنوج
متعشمين
عايزين سفينة حلم ناجية من الأنين
ومن الأماني محملة من كل زوج 

محمد حمدي غانم
28/5/2017

 

الجمعة، 26 مايو 2017

DataColumnMapping Class


فئة خريطة العمود
DataColumnMapping Class 

هذه الفئة تمثل الواجهة IColumnMapping والواجهة ICloneable، وهي ترسم خريطة الربط بين عمود مجموعة البيانات والعمود الأصلي.

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

 معرفة عمود البيانات GetDataColumnBySchemaAction:
تعيد كائن عمود البيانات DataColumn المطلوب تبعا للمعاملات التالية:
- كائن جدول البيانات DataTable الذي يحتوي العمود.. لاحظ أن اسم العمود في الجدول تحدده الخاصية DataSetColumn الخاصة بخريطة العمود الحالية.
- كائن النوع Type الذي يمثل نوع بيانات العمود.
- إحدى قيم المرقم MissingSchemaAction، تحدد ماذا سيحدث إن لم يوجد العمود في مخطط الجدول.
وتوجد صيغة أخرى لهذه الوسيلة، وهي صيغة مشتركة Shared، لهذا تزيد بمعاملين على الصيغة السابقة، هما المعامل الأول والثاني، اللذان يستقبلان اسم العمود الأصلي واسم العمود في مجموعة البيانات على الترتيب. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

الحكمة المصفاة في شئون رعي الشياة


الحكمة المصفاة
في شئون رعي الشياة 

قلتُ: أخبرني بصدقٍ يا حكيمًا للرُّعاةْ

إن سعَيتُ في سُهولي، كيفَ لي رَعىُ الشياهْ؟

قال: فاعلمْ: إنْ شَبِعْنَ, لكَ يَخفضنَ الجباهْ

إن أشرتَ, تَلقَهنَّ مُذعناتٍ للعَصاهْ

لم تُبالِ أيُّ شاةٍ عندَ ذبحِكَ العُصاةْ

قلتُ: لكنْ لو شَبِعنَ فانتفشنَ كالطُغاةْ؟

أو نَفرنَ من سيوفي كلُّ شاةٍ في اتجاهْ؟

قالَ: سهلٌ ذاكَ، أَتقِنْ بعضَ ألعابِ الدُّهاةْ

وافتعلْ صوتَ الذئابِ ولتكُنْ طوقَ النجاهْ

قلتُ: مرحى يا حكيمي, ها امتلكتُ كلَّ شاهْ

قال: لا تَغترَّ واحذرْ.. كم غَوَى راعٍ فتاهْ

لا تَزِدْ في البطشِ كي لا يبلغَ اليأسُ مَداهْ

قد حماكَ السيفُ حتى يُنشِبَ الجوعُ مُداهْ

ليسَ بعدَ الموتِ خوفٌ.. والمَنايا في اشتباهْ

والشياهُ حينَ جُعنَ وانتفضنَ للحياةْ

وانطلقنَ في جنونٍ بالقرونِ كالجُناةْ

غاضباتٍ ثائراتٍ جارفاتٍ كالغُزاةْ

لستَ تَلقى أيَّ أسلوبٍ لإخضاعِ الشياهْ

فاتركِ المَرعَى سريعا والتَمِسْ أنتَ النجاةْ

محمد حمدي غانم
25/5/2017

ملحوظة:
كلمة الرعاة تُنطق الرعاه عند تسكين التاء.. التاء المربوطة هي حالة خاصة بين التاء والهاء وهذا هو سبب كتابتها هاء عليها نقطتان، فهي تنطق تاءً عند الوصل (أي عند تشكيلها بعلامات متحركة) وتنطق هاء عن الوقف (أي عند وضع سكون عليها عند الوقف في نهاية الكلام).. أقول هذا لأن بعض اللهجات العامية كما في الشام تنطق التاء المربوطة تاء دائما سواء عند الوصل أو الوقف، وهذا خطأ.. تذكروا في تلاوة القرآن كيف نقرأ: "لا أقسم بيوم القيامة" فعند الوقف تُنطق القيامه وليس القيامت.

 

 

 

 

IColumnMapping Interface


 واجهة خريطة العمود
IColumnMapping Interface 

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

 عمود المصدر SourceColumn:
تحدد اسم العمود الأصلي. 

 عمود مجموعة البيانات DataSetColumn:
تحدد اسم العمود في مجموعة البيانات. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

 

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


وقلبك لو كسير فرحه = أنا يا حبيبتي عكازه

فليه مترددة ف حبي = ما تدي العيش لخبازه

محمد حمدي غانم، 2017

 

DataColumnMappingCollection Class


فئة مجموعة خريطة العمود
DataColumnMappingCollection Class 

هذه الفئة تمثل الواجهة IColumnMappingCollection، وهي تعمل كقائمة تحتوي على كائنات من نوع الفئة DataColumnMapping، التي ترسم خرائط الربط بين أعمدة مجموعة البيانات والأعمدة الأصلية.

وإضافة إلى ما تمثله من خصائص ووسائل الواجهة IColumnMappingCollection، تمتلك هذه الفئة الوسائل التالية: 

 معرفة عمود البيانات GetDataColumn:
مماثلة للوسيلة GetDataColumn الخاصة بالفئة DataTableMapping، مع فارق وحيد، هو أنها هنا وسيلة مشتركة Shared، لهذا تمتلك معاملا زائدا، هو المعامل الأول الذي يستقبل مجموعة خرائط الأعمدة DataColumnMappingCollection التي سيتم البحث فيها.

 معرفة خريطة العمود GetColumnMappingBySchemaAction:
مماثلة للوسيلة GetColumnMappingBySchemaAction الخاصة بالفئة DataTableMapping، مع فارق وحيد، هو أنها هنا وسيلة مشتركة Shared، لهذا تمتلك معاملا زائدا، هو المعامل الأول الذي يستقبل مجموعة خرائط الأعمدة DataColumnMappingCollection التي سيتم البحث فيها. 

 معرفة رقم العمود IndexOfDataSetColumn:
تستقبل اسم العمود في مجموعة البيانات، وتعيد رقم الخانة التي يوجد بها كائن خريطة هذا العمود في القائمة إن وجد، أو تعيد -1 إن لم توجد خريطة لهذا العمود. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

عقاب


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

محمد حمدي غانم، 2017

 

IColumnMappingCollection Interface


واجهة مجموعة خريطة العمود
IColumnMappingCollection Interface 

هذه الواجهة ترث واجهة القائمة IList، وهي تملك وسيلة وحيدة جديدة، وهي: 

 معرفة الخريطة بواسطة عمود مجموعة البيانات GetByDataSetColumn:
أرسل إلى هذه الوسيلة اسم العمود في مجموعة البيانات، لتعيد إليك كائنا يمثل واجهة خريطة العمود IColumnMapping الذي يحتوي على معلومات ربط هذا العمود بالعمود الأصلي.. وسيكون هذا الكائن من نوع الفئة DataColumnMapping تحديدا. 

وتضيف هذه الواجهة صيغة أخرى لبعض خصائص ووسائل القائمة التقليدية، مثل: 

 العنصر Item:
تستقبل الصيغة الثانية لهذه الخاصية اسم العمود الأصلي (وهو حساس لحالة الأحرف Case-Sensitive)، وتعيد كائنا Object يحتوي على خريطة هذا العمود إن وجدت في القائمة، وإن لم توجد فسيحدث خطأ.

 إضافة Add:
تستقبل الصيغة الثانية لهذه الوسيلة معاملين نصيين Strings، أولها هو اسم العمود الأصلي، وثانيهما هو اسم العمود في مجموعة البيانات.. وتقوم هذه الوسيلة بإنشاء كائن خريطة أعمدة DataColumnMapping يمثل العلاقة بين العمودين وتضيفه إلى القائمة، وتعيد نسخة من الواجهة IColumnMapping تشير إلى هذا الكائن. 

 تحتوي على Contains:
تستقبل الصيغة الثانية لهذه الوسيلة اسم العمود الأصلي (وهو حساس لحالة الأحرف)، وتعيد True إذا كانت هناك خريطة لهذا العمود في القائمة.

 رقم العنصر IndexOf:
تستقبل الصيغة الثانية لهذه الوسيلة اسم العمود الأصلي، وتعيد رقم الخانة التي يوجد بها كائن خريطة هذا العمود في القائمة إن وجد، أو تعيد -1 إن لم توجد خريطة لهذا العمود. 

 حذف من موضع RemoveAt:
تستقبل الصيغة الثانية لهذه الوسيلة اسم العمود الأصلي، وتبحث في القائمة عن كائن خريطة هذا العمود، وتحذفه إن وجدته. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

المصيدة الفاشلة


كل الرجال يعرفون أن الزواج مصيدة، ولكن المرأة طعم شديد الإغراء لا يقاوم!

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

-      ما بال هؤلاء الرجال لا يريدون أن يدخلوا المصيدة (أو يهربون من المصيدة)؟

لمثل هذا صارت نسب العنوسة والطلاق اليوم غير مسبوقة تاريخا!

ملحوظة:
لا تستطيع المرأة الجميلة أن تتوقف عن كونها جميلة، لكنها تستطيع أن تتوقف عن كونها أنثى، ولهذا استفحلت مشكلة الطلاق! 

محمد حمدي غانم، 2017

DataTableMapping Class


فئة خريطة الجدول DataTableMapping Class 

هذه الفئة تمثل الواجهة ITableMapping، وهي تحتوي على المعلومات اللازمة لربط الجدول في مجموعة البيانات بالجدول الأصلي.
ولحدث إنشاء هذه الفئة ثلاث صيغ:
- الصيغة الأولى بدون معاملات.
- والصيغة الثانية تستقبل اسم الجدول الأصلي واسم الجدول في مجموعة البيانات.
- والصيغة الثالثة تزيد على الصيغة السابقة بمعامل ثالث، يستقبل مصفوفة من النوع DataColumnMapping، تحتوي على معلومات الربط بين أعمدة الجدولين.
وتمتلك هذه الفئة هذه الوسائل الجديدة: 

 معرفة عمود البيانات GetDataColumn:
تعيد كائن عمود البيانات DataColumn الذي يمثل العمود المحدد بالمعاملات المرسلة، وهي بالترتيب:
- اسم العمود الأصلي.
- كائن النوع Type الذي يمثل نوع هذا العمود.
- كائن الجدول DataTable الذي يمثل الجدول في مجموعة البيانات.
- إحدى قيم المرقم MissingMappingAction التي تحدد ماذا سيحدث لو لم يتم العثور على العمود في خريطة الجدول.
- إحدى قيم المرقم MissingSchemaAction، التي توضح التصرف المناسب إذا لم يتم العثور على هذا الجدول في مجموعة البيانات. 

 معرفة الجدول GetDataTableBySchemaAction:
تعيد كائن جدول البيانات DataTable الموجود في مجموعة البيانات، والمذكور اسمه في خريطة الربط.. وتستقبل هذه الوسيلة معاملين:
- كائن مجموعة البيانات DataSet.
- إحدى قيم المرقم MissingSchemaAction.

 معرفة خريطة العمود GetColumnMappingBySchemaAction:
تعيد كائن خريطة العمود DataColumnMapping للعمود الذي تريده، وهي تستقبل معاملين:
- اسم العمود الأصلي.
- إحدى قيم المرقم MissingMappingAction. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

يخرب بيت شيطاتي


يا بنيّة بتهرب مني وحبك فني وكون إلهامي

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

لكن يخرب بيته شيطاني هديته بعشقي السامي

مش عارف مرة اتجاوز حدي معاك حتى ف أحلامي!

محمد حمدي غانم، 2017

____

من وحي حلم تدخلت الرقابة على المصنفات ـ ككل مرة ـ وأيقظني منه مبكرا بعد أول .... يا لكم من فضوليين.. قلنا إن الرقابة حذفته :)

 

ITableMapping Interface


واجهة خريطة الجدول
ITableMapping Interface 

تمتلك هذه الواجهة الخصائص اللازمة لرسم خريطة الربط بين الجدول الأصلي والجدول الموجود في مجموعة البيانات.. وهذه الخصائص هي: 

 جدول المصدر SourceTable:
تقرأ أو تغير اسم الجدول الأصلي. 

 جدول مجموعة البيانات DataSetTable:
تقرأ أو تغير اسم الجدول في مجموعة البيانات. 

* خرائط الأعمدة ColumnMappings:
تعيد كائنا يمثل واجهة خرائط الأعمدة IColumnMappingCollection، وهو تحديدا من نوع الفئة ColumnMappingCollection، التي يمكنك أن تضيف إليها خرائط الربط بين الأعمدة. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

صفحة الشاعر