PDA

View Full Version : sort کردن Adotable



hyl_piano
پنج شنبه 17 اردیبهشت 1388, 18:38 عصر
سلام .
یه جدول با 1 فیلد string داریم. مقادیر فیلد به شکل زیر هست.
1
2
11
22
3
44
10
وقتی که از این فرمان استفاده میکنم بصورت زیر sort میشه.

Adotable1.sort:=field1

1
10
11
2
22
3
44 باید از چه کدی استفاده کنم که این مقادیر بصورت عددی sort بشه نه رشته ای؟

shervin farzin
پنج شنبه 17 اردیبهشت 1388, 21:00 عصر
سلام
كاري كه بايد بكنيد اينه كه نوع String رو تبديل به Integer بكنيد تا قابل Sort شدن به شكل عددي
باشه . كد SQL كه اين تبديل و Sort شدن رو براتون انجام ميده به شكل زير هست :

select Filed from Table_Name order by cast(Field as int)
اما از اونجا كه شما از ADOTable استفاده ميكنيد كار يكم سخت ميشه . اگر امكاني هست تا
به جاش از ADOQuery استفاده كنيد ، كافيه اين كد SQL رو از طريقش اجراء كنيد ، اما اگر واقعا
مصريد كه از ADOTable استفاده كنيد تنها راهي كه به نظرم ميرسه اينه كه يك ADOConnection
هم روي فرمتون قرار بديد و مشخصه Connection رو براش تنظيم كنيد . بعد پيش از True كردن
Active در ADOTable ، كد زير رو بنويسيد :

ADOTable1.Recordset := ADOConnection1.Execute('select Field from Table_Name order by cast(Field as int)');
يك نكته مهم : تابع CAST همونطور كه متوجه شديد براي تبديل كردن نوع داده هست كه من ازش
براي تبديل String به Integer استفاده كردم . نكته اينجاست كه اين تابع از طرف MS SQL
پشتيباني ميشه . اگر جدول مورد نظر شما در Access هست بايد به جاي CAST از تابع Cint
كه فقط مخصوص تبديل كردن String به Integer هست استفاده كنيد . به عنوان مثال كد SQL براي
Access Database به شكل زير خواهد بود :

select Field from Table_Name order by cint(Field)
موفق باشيد .

M aJi D
شنبه 19 اردیبهشت 1388, 17:58 عصر
سلام.

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


موفق باشيد.

hyl_piano
یک شنبه 20 اردیبهشت 1388, 11:04 صبح
من فقط باید از adotable استفاده کنم. راه های کد نویسی توی sql رو هم بلد هستم. نمیتونم از یک connection دیگه هم استفاده کنم. لطفا اگه میشه یه راه حل پیدا کنید که فقط با adotable بتونم sort کنم.

hyl_piano
سه شنبه 22 اردیبهشت 1388, 09:59 صبح
نیست کسی که مارا یاری کند؟

mina.azarm
دوشنبه 18 خرداد 1388, 15:38 عصر
سلام

از این کد استفاده کن دوست عزیز:


adotable1.sort := ('Field Name');