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

هيا كيف نتحكم في الحقل بحيث لايكتب فيه إلا ارقام

مغلق
بدأه MyOracle في 13 مارس 2003 · 15 رد · 1,393 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا بكم جميعا ....

كيف ممكن ان نتحكم من خلال الدفلوبر بحيث نتحكم في حقل من الداتابيز ونوعه أحرف بحيث لايقبل الا أرقام ....

ملاحظة : بدون كتابة اي كود او اي ترقر

اللي حيجيب الحل حيكون :b1

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

MyOracle

MyOracle007@hotmail.com

فلسطـــين الحبيبة

#2

السلام عليكم

ممكن اقول الحل يااخي MyOracle :cool::D

اقوووول ولا مااقوووول ;)

عمر باعقيل

كندا - مونتريال

baaqeel@msn.com

#3

السلام عليكم جميعا

ولو يا يا أستاذ عمر.... انتا تقول وتصول وتجول بس المشكلة انو انتا دايما :b1

الله يطول عمرك يارب وانا سعيد جدا بمشاركتك (f)(f)(f)(f)(f)(f)(f)(f)(f)(f)

#4

السلام عليكم

اخي MyOracle

لجعل حقل حرفي لايقبل الا ارقام ... ننتقل الى خصائص الحقل ونقوم بعمل التالي :

Lowest Allowed Value = 0

Highest Allowed Value = 9

اتمني انه هذا الحل يكون هو الصحيح .. وياريت لو عندك حل تاني او تعديل علي

الحل الى انا وضعته , فارجوا التصحيح او ذكر الحل الاخر .

عمر باعقيل

كندا - مونتريال

baaqeel@msn.com

#5

مرحبا اخي عمر جزاك الله كل خير

كلامك اخي صحيح وبصراحة انا لم يخطر في بالي مثل هذا الحل;) ..... ولكن بردك ممكن يقبل انو يدخل احرف في الحقل

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

اي بها فواضل عشرية ؟؟؟ عندما يكون التحكم بالحقل عن طريق الرينج 0-9 عندها سوف يقبل منا اكثر من فاصلة عشرية واحدة اي ممكن ندخل له اكثر من فاصلة عشرية ويقبلها :'(:'(:'(

اما ما توصلت له انا واعتقد انه هو الحل الامثل حتى نقوم بتحويل الحقل الذي هو من نوع Char

بحيث نتعامل معه كحقل من نوع ارقام Number

هو ان نقوم بتغير من خواص الحقل

Data Type

من Char

الى Number

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

وفي حالة ما ادخلنا اي حرف في الحقل سوف تظهر رسالة الخطأ من الدفلوبر وتمنعنا من ادخال اي حرف وحيزعل منا الدفلوبر لو كررناها وادخلنا احرف ......:'(:'(:'(.....جربوها وقلولي رأيكم

تمنياتي لكم جميعا بدوام الصحة والعافية والنجاح(f)(f)(f)(f)

MyOracle

فلسطـــــــين

MyOracle007@hotmail.com

#6

السلام عليكم

اخي MyOracle

كلامك صحيح 100%

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

يقبل تخزين القيمه حتى لو كانت تحتوي علي ارقام مثلا a1234

لكن لو كان اول قيمه رقم والباقي حروف او ارقام فسيتم قبول القيمه وسيتم

تخزينها في قاعدة البيانات مثلا 1asdg12 .. وطبعا هذا خطاء .

شكرا لك اخي , زادك الله علما ونفع به المسلمين :) (f)

عمر باعقيل

كندا - مونتريال

baaqeel@msn.com

#7

يا جماعة ليش معقدين الأمور

فقط في ال format mask ضعوا عددا من رقم 9 لعدد الخانات التي سيتم السماح بادخالها وسيتكفل الديفيلوبر بالموضوع

أي مثلا إذا أردتم أن يتم ادخال أكبر عدد من خانة المئات ففقط ضعوا في الفورمات ماسك 999

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

وإذا أردتم أن تجبروا المستخدم على إدخال العدد المطلوب أي إذا كان من فئة المئات فيجب عليه إدخال عدد بين 100 و 999 فكل ما عليكم عمله هو استبدال ال 9 ب 0 وإنتهى الموضوع

وشكرا على طرح هذه القضية

#8

مرحبا اخ شرجاوي شكرا علي مشاركتك اخي:

اخ شرجاوي ممكن كلامك يكون صحيح فقط اذا كان نوع الحق هو Number

اما اذا كان نوع الحقل char

فلابد عندما تضع الفورمات 999.99 علي سبيل المثال ..لابد من ادخال القيم بنفس شكل الفورمات ونفس العدد وهي هيا المشكلة ماذا لو اردنا ان ندخل عدد غير معروف في الحقل يعني ممكن يكون 123 او 254888 او 236.3666

هنا تظهر المشكلة وانسب شيئ هو ان نحول الحقل من char اي

number حتى نتخلص من كل هذه المشكلة وسهعتها ممكن تعمل اي فورمات وبكل سهولة .

شكرا لجميع من شاركونا في هذه المشاركة (f)(f)(f)(f)(f)

MyOracle

فلسطـــــــين

MyOracle007@hotmail.com

#9

أخوي myoracle أنا ذكرت أنه يتم استخدام الرقم 9 في حالة أنك لا تريد تحديد العدد وتستخدم 0 في حالة أنك تريد تحديد العدد

أما إنك تعمل الحقل number وتترك المستخدم يدخل حروف ثم عندما يريد عمل commit تقوم بترك الديفيلوبر يحاول إدخال الحرف ولا يستطيع فيعطي رسالة error فهذا ليس حلا أبدا لأنه في الحالات التي يوجد بها رقم تسلسلي تأخذه من sequence من قاعدة البيانات سيؤدي إلى استهلاك أرقام على الفاضي وترك مساحة gap في ال sequence

هذه حالة من الحالات

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

وشكرا

#10

مرحبا اخي شرجاوي:

يبدو انك لم تتقوم بتجربة ما قولته لك ... انا جربت الطريقة التي قلتها انت صدقني لم تفي بالغرض الذي انا اتناوله ... هنا

في هذه الحالة لو اننا فرضنا انك تريد ادخال الراتب الشهري لموظف فكيف فكيف وهو ممكن ان يكون له عدة صور واشكال مثل 500.58 او 4000 او 60.99

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

جربها وقول لي كيف ممكن ان نطبقها وانا شاكر لك ...

MyOracle

فلسطـــــــين

MyOracle007@hotmail.com

#11

أخوي myOracle

أنت قمت بتحويل نوع الحقل إلى number إذا لماذا أنت مصرا علي أن أبقيه char

ما أقصده أنه ليس كافيا لتحويل نوع الحقل لأنه إذا لم تقم بتحديد ال format mask لن يفحص المدخلات في الحقل إلا ساعة التخزين وعليه سيعطيك الرسالة ويقوم بعمل كافة العمليات التي تكون قد كتبتها في ال key-commit .... أما في حالة استخدم الفورمات ماسك تكون قد ضمنت أنه لن يستطيع الخروج من الحقل إلا بعد أن يكون قد كتب فيه أرقام

أتمنى أن تكون الصورة قد وضحت

وشكرا

#12

يا اخي العزيز شرجاوي ...يبدو اننا لم نختلف ولكن

انا مشاركتي فقط تقتصر علي التحكم في الحقل بحيث لايكتب فيه احرف مع انه نوعه في الداتابيز هو VARCHAR

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

MyOracle

فلسطـــــــين

MyOracle007@hotmail.com

#13

ياخي myOracle شكلنا قلبناها شات

خلاص إنسا الموضوع لا أنا رح إفهمك ولا إنت رح تفهمني

#14

:) (f)(f)(f)(f)(f)(f)

#15

ماهذا ؟؟؟؟!!!!

سبحان الله و الحمد لله لا اله الا الله و الله اكبر

#16

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

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

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

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

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

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

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