EasyDelphi Q&A
–2 تصويتات
29 مشاهدات

عندما يكون نوع حقل الادخال  AsInteger ,عند تحويل القيمة يكون كتالي StrToInt.

ماذا اذا كان نوع حقل الادخال  string عند تحويل القيمة هل اكتبها على هذا الشكل strtostr ام اكتفي بكتابة string ?

في هذا المثال كان نوع حقل الادخال  (integer. (dbcombobox رقم. ثم قمت بتغييره الى string. 

adotable2.fieldbyname('Num_produit').asinteger:=strtoint(DBLookupComboBox1.text

هل تصبح هكذا 

adotable2.fieldbyname('Num_produit').asstring:=string(DBLookupComboBox1.text

ام ماذا ???

وشكرااا

 

 

 

سُئل في تصنيف Delphi بواسطة (880 نقاط) | 29 مشاهدات

3 إجابة

0 تصويتات
adotable2.fieldbyname('Num_produit').asstring:=DBLookupComboBox1.text;

 

تم الرد عليه بواسطة (1,060 نقاط)
adotable2.fieldbyname('Num_produit').asstring:=string(DBLookupComboBox1.text
هذا المثال يصلح ايضا
هل هو منطقي ?
شكرااا
0 تصويتات

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

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

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

تم الرد عليه بواسطة (18,030 نقاط)
+1 تصويت

على ما يبدو عندك مفهوم غلط عن الانواع والتحويل . وهذا سبب سؤالك الغريب .

١ ـ التحويل كمفهوم . هو تحويل من نوع لنوع اخر . ولهذا السبب سؤالك يبدو غير منطقي فأين التحويل اذا كان النوع سيتحول لنفس النوع ؟!!!!

٢ ـ asString و asInteger و كل شبيهاتها التي تستخدمها مع حقول قواعد البايانات في الدلفي لها استخدامين . الاول هو قراءة . عندها ستاخذ القيمة بالنوع الذي حددته بها . والاستخدام الثاني هو الاسناد . وعنها تعني بان القيمة التي ساضعها فيه ستكون من النوع الذي حددته بها  وكمثال ( الحقل a نص ) :

table1.fieldbyname('a').asInteger = X;

تعني اني ساضع في الحقل a القيمة x التي من نوع integer . 

المشكلة تكمن في عدم توافق الانواع . او عدم التمكن من التحويل . فالتحويل ليس شيء مطلق ينجح دائما . مثلا . لا يمكن تحويل كلمة abcd إلى رقم . هذا غير منطقي ..


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

عندما يكون نوع حقل الادخال  AsInteger لا يوجد نوع اسمها AsInteger ومن السياق اعتقد انك تقصد Integer ,عند تحويل القيمة يكون كتالي StrToInt.

ماذا اذا كان نوع حقل الادخال  string عند تحويل القيمة هل اكتبها على هذا الشكل strtostr اذا كانت القيمة التي ستضعها في الحق فانت لا تحتاج لشيء فقط استخدم AsString وضع القيمة مباشرة . فانت تقول القيمة ستكون string و القيمة هي فعلا String .  . ام اكتفي بكتابة string ?

في هذا المثال كان نوع حقل الادخال  (integer. (dbcombobox رقم. ثم قمت بتغييره الى string. 

adotable2.fieldbyname('Num_produit').asinteger:=strtoint(DBLookupComboBox1.text

هل تصبح هكذا 

adotable2.fieldbyname('Num_produit').asstring:=string(DBLookupComboBox1.text

ام ماذا ???

لا هذه ولا تلك . ستصبح هكذا 

adotable2.fieldbyname('Num_produit').asstring:= DBLookupComboBox1.text

ببساطة AsString تعني بان القيمة القادمة هي String . والـ Text هي String . فهذا هو تماما المطلوب . ولا تحتاج لعمل اي شيء .

 
تم الرد عليه بواسطة (25,980 نقاط)
شكراا كثيراا
لا حضت انك لا تضع اقواس لل DBLookupComboBox1.text  ?
رغما اني واضع لها اقواس و تشتغل عادي
لم اضع اقواس لانها لا تحتاج اقواس . ووجود الاقواس لا معنى له .
مثل اذا قلت i تساوي 8 بين قوسين . او قلت  i تساوي ثمانية . لا فرق
بالاضافة ان الاقواس بوجود اجراء مثل اجراء التحويل . تعني ان ما بين قوسين هي المقصودة بالاجراء وليس غيرها .. وهنا لا يوجد تحويل .

اسئلة متعلقة

0 تصويتات
1 إجابة
0 تصويتات
1 إجابة
سُئل مايو 10 في تصنيف Delphi بواسطة hidenpain (880 نقاط) | 49 مشاهدات
0 تصويتات
1 إجابة
0 تصويتات
0 إجابة
+2 تصويتات
1 إجابة
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

396 سؤال
634 إجابة
1,130 تعليق
237 مستخدم