ترتيب حقل في Adotable حسب أبجدهوز
#1
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
سؤالي هو كالتالي
كيف أرتب حقل مثلا حقل الاسم و يكون الترتيب حسب
أبجدهوز تصاعديا و تنازليا
و أخواني أكون لكم شاكرا
و جزاكم الله عني ألف خير
الرد
#2
وعليكم السلام ورحمة الله وبركاته
big fun أهلا ومرحبا بك في دلفي للعرب Smile
ADO ليس محرك قواعد بيانات بذاته، إنما هو تغليف أو Driver لواجهة قواعد بيانات
إذن، هو لا يقوم بالإضافة/الحذف/التعديل كما لا يقوم برصف البيانات ضمن الجدول
إنما يرسلها إلى محرك قواعد البيانات من خلال تعليمات DESC/ASC

كيف تقوم المحركات بالترتيب؟ هنا يأتي الحديث عن طريقة الترتيب
يتم الترتيب في محركات البيانات (على اختلاف أنواعها) بعدة طرق
الأصل أن الترتيب العربي "ألفبائي" في معظم القواعد

إن أردت ترتيب آخر ابحث ضمن خصائص المحرك عن إعدادت اللغة والتريتب Collation Sequence
هذا إن كان الخادم يدعم الترتيب أبجدهوز حطي كلمن... ولم ألتق شخصيا بذلك.
بالتوفيق.
الرد
#3
السلام عليكم و رحمة الله و بركاته
أخي الكريم شكرا على الرد السريع حفظك الله
أعذرني يا أخي فأنا قد أسأت صياغة نص السؤال
سؤالي هو أنه
ماهي الدالة التي من خلالها يمكنني ترتيب حقل حسب ترتيب أبجدهوز
فإذا عرفتها أفدي و جزاك الله عني و عن كل من يقرأ الموضوع ألف خير
و أنا عن نفسي أذا صغتها أو وجدتها سوف أضيفها في مواضيع أخرى إن شاء الله
الرد
#4
[INDENT]

وعليكم السلام ورحمة الله و بركاته ،
أ
خي الحبيب
1- ما هي قاعدة البيانات المستعملة ؟
2- ما هي المكونات التي تستعملها في الاتصال بقاعدة البيانات ؟
3- هل لديك فكرة عن Sql ؟

[/INDENT]
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#5
اذا كنت تقصد اعادة ترتيب السجلات بالاعتماد على حقل أو عمود معين من خلال الدلفي وباستخدام
ADOTable
فإليك الجواب
استخدم خاصية SORT
كود :
ADOTable1.Sort := 'FirstName ASC'

ASC لترتيب الصفوف تصاعديا اي من الاصغر الى الاكبر
DESC لترتيبها تنازليا اي من الكبير الى الاصغر

وعلى فرض انك تريد عرض السجلات حسب اسم الاول ثم حسب اسم الاب
كود :
AdoTable1.sort:='FirstName ASC, FatherName ASC';

ولكن عليك العلم ان هذه الأوامر تأثيره يقتصر على عملية العرض فقط اما البيانات المخزنة في قاعدة البيانات فأنت نوعا ما لا تستطيع التحكم فيها حيث يقوم نظام قاعدة البيانات بتخزين البيانات بطريقته الخاصة
ولكننا نستطيع اللعب في هذه البيانات وعرضها بالطريقة التي تناسبنا
الرد
#6
السلام عليكم ورحمة الله و بركاته
أعمل على مشروع لفرز الاسماء بطريقة أبجدهوز و كنت أبحث عن دالة التي تمكنني من فرزها حسب أبجدهوز
حيث إستعملت قاعدة بيانات أكسس
و شكرا جزيلا لكم يا إخواني
الرد
#7
بالنسبة لل ADOTable فهذه هي الطريقة
او تقوم باستخدام AdoQuery وتكتب فيها جملة الاستعلام SELECT وفي آخر سطر تستخدم امر الترتيب
مثال
على فرض انه لديك جدول الطلاب وفيه الاسم الاول والاسم الثاني واسم العائلة و العمر
وتريد احضار كافة الطلاب بحيث يكونونن مرتبين حسب الاسم الاول والاسم الثاني
كود :
Select firstname, secondname, family, age from Students order by firstname ASC, SecondName ASC
اضيق ايضا ان الدالة هي Order By وصيغة الستخدامها
كود :
[B]ORDER BY[/B] [I]field_name[/I] [B]ASC|DESC[/B]


حيث ان ASC للترتيب التصاعدي
DESC للترتيب التنازلي
الرد
#8
صيغة ASC و DESC اعرفها
ولكن هذه الصيغة ترتيب الاسماء حسب Le Code Ascii
و Le code Asii لا يدعم صيغة أبجدهوز
حيث
أ ب ج د ه و ز -------> صيغة أبجدهوز
أ ب ت ث ...إلخ ------> صيغة Le code ASCII
و شكرا
الرد
#9
يبدو أن Access لا يمكن ترتيب داخلي (COLLATE) محدد باللغة العربية:
كود :
New Database Sort Order Numeric, 1033=General 2052=Chinese Pronunciation 133124=Chinese Stroke Count 1028=Chinese Stroke Count (Taiwan) 197636=Chinese Bopomofo (Taiwan) 1050=Croatian 1029=Czech 1061=Estonian 1036=French 66615=Georgian Modern 66567=German Phone Book 1038=Hungarian 66574=Hungarian Technical 1039=Icelandic 1041=Japanese 66577=Japanese Unicode 1042=Korean 66578=Korean Unicode 1062=Latvian 1063=Lithuanian 1071= Macedonian (FYROM) 1044=Norwegian/Danish 1045=Polish 1048=Romanian 1051=Slovak 1060=Slovenian 1034=Spanish (Traditional) 3082=Spanish (Spain) 1053=Swedish/ Finnish 1054=Thai 1055=Turkish 1058=Ukrainian 1066=Vietnamese
طالع:
كود :
http://msdn.microsoft.com/en-us/library/Aa140014
جرب أيضا خدعة StrComp مع Local ID
كود :
http://www.accessforums.net/queries/use-collate-statement-select-clause-1981.html
بالتوفيق.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم