ورود

View Full Version : ساخت TQuery (حرفه ای)



MiRHaDi
شنبه 23 آبان 1383, 08:30 صبح
سلام
میخوام یک Component بسازم از TDataSet که کاری شبیه Query انجام بده
البته فقط Select Query کفایت میکنه
با فرمت خودم نه SQL
در ضمن نمیخوام فرمتم رو به SQL ترجمه کنه و بعد اجراش کنه
Local هست و با یک جدول کار میکنه مشکلات Join و ... رو نداره !
فقط Where داره همین
ممنون میشم راهنمایی کنید
بای

رضا عربلو
یک شنبه 24 آبان 1383, 01:07 صبح
دوست عزیز
می بخشید درست منظورتان را نفهمیدم لطفاً بیشتر توضیح دهید ؟

"با فرمت خودم نه SQL "

تا اونجا که عقل من قد می کشه فکر می کنم تمام متدهای مربوط به جداول نهایتاً بایستی به sql ترجمه بشوند.

vcldeveloper
یک شنبه 24 آبان 1383, 02:22 صبح
وقتی میخوای با دستورات خودت بجای SQL کار کنی دیگه چه نیازی به TDataSet داری؟!!
برای TDateSet باید یه provider یا driver مشخص کنی که در این صورت باید دستوراتت به گونه ایی باشند که برای Provider مورد نظر قابل فهم بشند.

MiRHaDi
یک شنبه 24 آبان 1383, 06:43 صبح
سلام
میخوام جدول رو به DBGrid وصل کنم !
گفتم فقط کار Where رو میکنه ! تقریبا مثل Filter در Table ولی از خود Filter نمیتونم استفاده کنم ( باید یک چیزی خودم درست کنم چون یک سری امکانات باید بهش اضافه کنم )
بای

MiRHaDi
چهارشنبه 27 آبان 1383, 00:29 صبح
سلام
من هنوزم امیدم رو از دست ندادم !‌میدونم بالاخره جوابمو میدید شک ندارم
بای

MiRHaDi
یک شنبه 01 آذر 1383, 21:19 عصر
سلام
یه سوال !
فکر میکنید چرا کسی جواب سوالای منو نمیده ؟
آیا MiRHaDi به صورت ReadOnly در سایت Set شده است ؟
بای

Mohsen_4194
یک شنبه 01 آذر 1383, 21:36 عصر
دوست عزیز فکر می‌کنم علتش نامفهوم بودن سوالتونه.

hr110
یک شنبه 01 آذر 1383, 22:17 عصر
سلام
این کار رو برای یک پروژه انجام میدهید یا خیر یک کار تفریحی یا دانشجویی است. کمی بیشتر از منظورت صحبت کن تا شاید دوستان بتوانند راهنمایی کنند یا شاید هم راه را به اشتباه میروید

موفق باشید

MiRHaDi
سه شنبه 03 آذر 1383, 03:44 صبح
سلام
من جواب رو نوشتم پست کردم ! چرا نیست ! ؟

این کار برای یک پروژه است که با تعداد چندین میلیون رکورد طرف هستم که با قوانین عادی شاید همه در یک سطح باشند و با SQL یا Filter معمولی نمیشه یک عده رو جدا کرد از بقیه ! یعنی ببینیم کدام رکوردها حایز شرایط هستند یا نه !
تنها کاری که شد برای اینکار انجام بدم این بود که دستی Filter کنم و از OnFilter استفاده کنم و ... ! این روش باعث میشه هر دفه چند میلیون رکورد رو بررسی کنم در هر مرحله که زمان بره ! اگر یک رکورد شرط 1 را نداشته باشد نمیتواند شرط 2 را داشته باشد ! یعنی هر شرط مکمل شرط قبلی است. این شروط یکی یکی وارد سیستم میشوند و ...
میخواهم وقتی برای شرط 1 یک بار اطلاعات را بررسی کردم آنها که شرط را ندارند از لیست خارج شوند و دفعه دیگر دوباره بررسی نشوند. و نمیخوام این کار رو با استفاده از Logical Field انجام بدم !‌ چون میخوام مستقیما جواب به DbGrid وصل باشه و رکوردهای حذف شده نشان داده نشند ! یعنی حذف(نه Delete) بشند. در اصل گزینش رکوردهایی که میخوام از بقیه !‌ مثل Filter یا Select .
نمیدونم تونستم درست توضیح بدم یا نه
مرسی که وقت گذاشتین
بای

Mohsen_4194
سه شنبه 03 آذر 1383, 12:33 عصر
دوست عزیز همونطور که تو اون یکی پستتون گفتم می‌تونید از ClientDateSet استفاده کنید و رکورد هاتون رو بدون اینکه ApplyUpdate کنید حذف کنید.

رضا عربلو
پنج شنبه 05 آذر 1383, 10:48 صبح
شاید بهتر باشه سوال را جور دیگری مطرح کنم.
آیا بهتر نیست Query داشته باشیم که ضمن اجرا بتوان داخل آن را دید. یعنی قبل از اینکه Query به پایان برسد و تمام بانک را جستجو کرده باشد.؟

MiRHaDi
یک شنبه 08 آذر 1383, 00:05 صبح
سلام
نه سوال این نیست ! همش رو با هم میخوام !
سوال واضح نیست ؟
بای