ورود

View Full Version : سوال: مشکل با sort



alamdar_761
جمعه 30 مهر 1389, 21:49 عصر
سلام
به یک مشکل کوچیک برخوردم نمی دونم چجوری حلش کنم لطفا راهنمایی نمایید
وقتی دستور adoquery1.sort='field ADC' را اجرا می کنم خطا زیر را میده
current provider does not support the necessary interfaces for sorting or filtering
مشکل کجاست؟
لطفا راهنمایی نمایید
تشکر

یا علی

pezhvakco
شنبه 01 آبان 1389, 11:43 صبح
شما که داری داده ها تو با کوئری میگیری، در کد نویسی های همون این کار رو انجام بده .
اگه نه، برای مرتب سازی می تونی Index رو به کار بگیری .

alamdar_761
شنبه 01 آبان 1389, 12:54 عصر
شما که داری داده ها تو با کوئری میگیری، در کد نویسی های همون این کار رو انجام بده .
اگه نه، برای مرتب سازی می تونی Index رو به کار بگیری .
تشکر
ولی اگر بخوام با دستور sql انجام بدم چون مرتب سازی به صورت جدا و برای هر فیلد توسط کاربر انجام میشه و همچنین کدنویسی برنامه جوریه که اگر بخوام با با مرتب سازی sql استفاده کنم حجم کدهای برنامه زیاد میشه
ولی با روش sort به حدقل می رسه

منظور از index برای مرتب سازی چیه؟ یکم واضح تر بگید

اگر امکان داره بگید که چرا دستور sort ایراد میگره من خودم قبلًا ها از اش استفاده میکردم ایرادی نداشت

یا علی

pezhvakco
شنبه 01 آبان 1389, 13:45 عصر
فکر کنم اگه از ADODataSet استفاده کنی، از نظر امکانات بهتر باشه .
با دستور
ADODataSet1.IndexFieldNames:=''; می تونی مرتب سازی سریع تر داشته باشی .


اگر بخوام با با مرتب سازی sql استفاده کنم حجم کدهای برنامه زیاد میشه
ولی با روش sort به حدقل می رسه
فکر کنم از نظر کارایی، کد دستورات Sql بهتره باشه .


اگر امکان داره بگید که چرا دستور sort ایراد میگره من خودم قبلًا ها از اش استفاده میکردم ایرادی نداشت
اون خطایی که شما نوشتی به پشتیبانی نشدن کد دستور ها اشاره داره ؟
شاید به شیوه کدنویسی و اجرای اون کوئری برگرده !

alamdar_761
شنبه 01 آبان 1389, 16:07 عصر
تشکر ولی اگر باز هم بخوام با ADODataSet این کار ها را انجام بدم باز باید کلی تغییر تو برنامه بدم
فکر کنم خودم باید یک فکری براش کنم
تشکر

یا علی

K.Mohammadreza
شنبه 01 آبان 1389, 18:18 عصر
سلام
به یک مشکل کوچیک برخوردم نمی دونم چجوری حلش کنم لطفا راهنمایی نمایید
وقتی دستور adoquery1.sort='field ADC' را اجرا می کنم خطا زیر را میده
current provider does not support the necessary interfaces for sorting or filtering
مشکل کجاست؟
لطفا راهنمایی نمایید
تشکر

یا علی




ADOQuery1.Sort := 'LastName ASC, DateDue DESC'

alamdar_761
شنبه 01 آبان 1389, 19:44 عصر
تشکر ولی منظورم همون ASC بود که ایراد میگیره

K.Mohammadreza
یک شنبه 02 آبان 1389, 06:35 صبح
شما که از adoQuery استفاده کردین کافیه آخر دستور SQL دستور ORDER BY FieldName ASC or DESC را اضافه کنید

alamdar_761
یک شنبه 02 آبان 1389, 08:10 صبح
همونطور که به pezhvakco گفتم نحوه برنامه نویسیم جوریه اگر بخوام اینجوری sort کنم حجم کدهای خیلی میشه ولی با خود دستور sort به حداقل میرسه

mthbarnamenevis
پنج شنبه 11 آذر 1389, 11:24 صبح
سلام
آقا من هيچ مشكلي تو sort ندارم
ولي اگه بخوام يك جدول رو بر اساس دو تا فيلد sort كنم نميشه
مثلا يك تعدادي داده مربوط به امتحانات هست كه مي خوام هم بر اساس تاريخشون و هم بر اساس ساعت sort بشه

يعني خروجي اين بشه

رياضي 2.1.1389 8
فارسي 2.1.1389 8
عربي 3:.1.1389 8
فارسي 3.1.1389 8
رياضي 4.1.1389 9
رياضي 4.1.1389 9

خيلي ضروريه كمكم كنيد:گریه::گریه::گریه::گریه:: ریه:

pezhvakco
جمعه 12 آذر 1389, 14:21 عصر
این موضوع مرتب سازی بر اساس چند ستون زیاد گفته شده .
اگه با کوئری کار می کنی این کد رو آخر دستورات به کار بگیر :

ORDER BY Col1, Col2

اگه با در خود دلفی می خوای انجام بدی با ایدکس ها :

DataSet1.IndexFieldNames:=' Col1, Col2 '

با اینکه جستجو کن ...

Hassan247
پنج شنبه 27 آبان 1395, 09:18 صبح
سلام من یک جدول دارم می خوام ستون ردیف (عدد) مرتب کنم وقتی مرتب میکنم اول اون عدد هایی که یک دارن بعد عددهای دیگر را مرتب میکنه
مثلا عدد 1 تا 1000 را ردیف کنه لطفا راهنمایی کنید

khoshblagh
پنج شنبه 27 آبان 1395, 12:05 عصر
با سلام
دلیلش اینه که فیلد شما از نوع کارکتری میباشد. نوع فیلد مورد نظر را به عددی تبدیل کنید و یا از تابع تایپ کست استفاده نمائید.