PDA

View Full Version : aggregate



MNosouhi
شنبه 20 آبان 1385, 08:37 صبح
من الان برای محاسبه مجموع یه فیلد از کامپوننتهایی مثل DBSumList استفاده می کنم یا از دستور Sum در Sql . جایی خوندم که اگه فیلد رو از نوع aggregate تعریف کنی خودش می تونه مجموع مثلا یه فیلد دیگه رو حساب کنه . چطوری میشه فیلد رو از نوع aggregate تعریف کرد؟

vcldeveloper
شنبه 20 آبان 1385, 09:16 صبح
با استفاده از TAggrigateField می تونید محاسباتی روی داده های فیلد انجام بدید. این نوع از فیلد در ClientDataSet تعریف میشه و بصورت عادی موتورهای بانک اطلاعاتی همچین نوعی برای فیلدها ندارند.

MNosouhi
شنبه 20 آبان 1385, 11:04 صبح
یه فیلد از نوع TAggrigateField در Clientdataset درست کردم . حالا کجا باید بهش بگم که مثلا مقدار 2 تا فیلد رو با هم ترکیب کنه و نمایش بده؟

vcldeveloper
دوشنبه 22 آبان 1385, 08:17 صبح
بخش دوم توضیحی که درباره AggrigateField در بالا دادم اشتباها مربوط به ADTField میشد که اونو اصلاح کردم. در تاپیک دیگه ایی که درباره ADTField پرسیده بودید، جوابتون رو دادم.
همونطور که در پست قبلی هم توضیح دادم، AggrigateField مربوط به ClientDataSet میشه و جای دیگه ایی کاربرد نداره. در واقع AggrigateField به شما این امکان رو میده که روی مجموع رکوردهای یک جدول محاسبات خاصی رو انجام بدید (بر خلاف CalculatedField که محاسبات بر روی فیلدهای رکورد جاری انجام میشند). AggrigateField از پنج تابع Sum, Count, Min, Max, Avg پشتیبانی میکنه. دقت کنید که در همه موارد نمیشه AggrigateField را جایگزینی برای توابع Sum, Count, Min, Max, Avg ایی که در SQL استفاده میشوند، دانست. وقتی از این توابع در یک SQL Query استفاده میشه، محاسبات توسط SQL Server و در سمت سرور و بر روی کل رکوردهای مشخص شده در Query انجام میشه. اما AggrigateField محاسبات را در سمت کلاینت و بر روی داده های موجود در ClientDataSet انجام میده.
نحوه کار با TAggrigateField در راهنمای دلفی توضیح داده شده:
دلفی 7:
DevGuide: Developing Database Applications -> Specifying aggregates

shayan_delphi
جمعه 13 بهمن 1385, 08:09 صبح
آقای کشاورز این متد ADOQuery1.AggFields همون کار AggregateField را انجام می ده؟
من نتونستم ازش استفاده کنم.

vcldeveloper
جمعه 13 بهمن 1385, 08:48 صبح
این متد ADOQuery1.AggFields همون کار AggregateField را انجام می ده؟
من نتونستم ازش استفاده کنم.
AggFields یک متد نیست. یک کلاس از نوع TField هست که لیستی از تمام فیلدهای Aggregate رو در خودش نگه داری میکنه. برای استفاده از فیلدهای Aggregate، باید DataSet شما از این نوع فیلدها پشتیبانی کنه. برای اطلاعات بیشتر می تونید راهنمای دلفی برای AggFields رو بخونید.