PDA

View Full Version : تعداد رکورد های dbgird



karzari
پنج شنبه 12 اردیبهشت 1387, 12:13 عصر
سلام
چطور میشه dbgird رو محدود کرد که فقط یه تعداد خاصی رو نشون بده مثلا هر 10 رکورد رو یه بار نشون بده و با زدن یک دکمه 10 تاب بعدی رو نشون بده

hadisalahi2
پنج شنبه 12 اردیبهشت 1387, 12:18 عصر
سلام ،
البته فکر کنم شما باید این کار رو روی Query یا Table اعمال کنید نه روی DBGrid
این کار هم که خوب با SQl خیلی راحته

delphiprog3000
شنبه 14 اردیبهشت 1387, 11:57 صبح
سلام در ادامه صحبت دوستمان

میتوانید از دستور sql



select top 3 * from tablename


و این دستورات را به کوری خود پاس دهید.......

و یا به این حالت که میتوانید از این لینک مطالبی را به دست آورید.


http://barnamenevis.org/forum/showthread.php?t=101556


موفق باشید.................................

beginner63
یک شنبه 15 اردیبهشت 1387, 11:04 صبح
select top 3 * from tablename
اگر اشتباه نكنم اين دستور 3 ركورد اول رو مياره. حالا اگر بخوايم از ركورد 3 تا 6 رو بياره بايد چكار كنيم؟

delphiprog3000
یک شنبه 15 اردیبهشت 1387, 11:42 صبح
سلام دوست عزیز adoquery متدی داره به نام RecordCount میتونی از اون استفاده کنی.
که کارش شمارش تعداد رکوردهای ورودی و از طریق اون میتونید این کارو انجام بدین

و بعد از next استفاده کنید.

در ادامه کدش رو براتون میزارم.......

و به نظرم بتونی از همون دستور بالا که مربوط به sql است . داخل یک حلقه بزاری و یک پارامتر که حاوی مقدار است به این دستور پاس بدی...................

delphiprog3000
یک شنبه 15 اردیبهشت 1387, 12:06 عصر
دوست عزیز با استفاده از این کد در رویداد ایجاد فرم سطر دیبی گرید رو به شماره رکورد مورد نظر هدایت کنید.


procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
//ADOQuery1.First;
for i := 0 to -1 do
ADOQuery1.Next;
end;

و با این دستور در هر رویدادی میتوانید به سطر دلخواه برسید:



procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
with adoquery1 do
begin
for i:= 3 to 6 do
next;
//if Recordset.RecordCount <20then
//next;
end;
end;
موفق باشید...............................

beginner63
یک شنبه 15 اردیبهشت 1387, 13:27 عصر
اين كدي كه شما نوشتيد فقط به تعداد تكرار حلقه for اشاره گر جدول رو به جلو مي بره. سوال من در رابطه با استفاده از top x بود كه هميشه ركوردهاي اول رو مياره

delphiprog3000
یک شنبه 15 اردیبهشت 1387, 18:01 عصر
سلام.

دوست عزیز اون راهی که براتون گذاشتم مشکلتون رو حل میکنه.

ببین دستور top در sql مقدار اولیه آن از 0 شروع میشه.

من هر چی که امتحان کردم نتونستم راه منطقی برای دستور top پیدا کنم.

چون شکل کلی این دستور از پیش فرض 0 شروع میشه و تا پایان تایین شده میره.

امیدوارم اساتید بتونن راهی برای این کار پیدا کنند.

موفق باشید...............

beginner63
دوشنبه 16 اردیبهشت 1387, 08:19 صبح
دوست عزیز اون راهی که براتون گذاشتم مشکلتون رو حل میکنه.
حل نكرد، اما تشكر از پيگيري شما

Arghavan_Reza
پنج شنبه 19 اردیبهشت 1387, 09:53 صبح
با سلام
دوست گرامی چرا می خواهید کار را برای خودتان و کاربر سخت کنید؟ سعی کنید امکانات در اختیار کاربر بگذارید و کنترل اطلاعات را تا میتوانید به بانک بسپارید.
موفق باشید

delphiprog3000
پنج شنبه 19 اردیبهشت 1387, 11:38 صبح
با سلام .

دوست عزیز میشه یک مثال یا یک نمونه در مورد مطلبی که ذکر کردید بیارید؟

دوست دارم راه حل شما رو بدونم......

با تشکر.......

Arghavan_Reza
پنج شنبه 19 اردیبهشت 1387, 12:03 عصر
اگر حجم اطلاعات زیاد است می توانید از PacketRecords در ClientDataSet استفاده کنید.
موفق باشید.

karzari
دوشنبه 23 اردیبهشت 1387, 00:35 صبح
ببینید عزیزان حالا شما باید فرض کنید که ما می خواهیم به اینترنت وصل بشیم و دیتا رو از اینترنت بگیریم پس نمی تونیم همه اطلاعات رو یکجا سلکت کنیم چون اگر حجم اطلاعات بالا باشه وقت گیر میشه و حتی اگر از طریق شبکه وصل باشیم سرعت فوق العاده میاد پایین
من خودم نسبتا میدونم باید چیکار کرد اما کدشو نمیدونم
ببینید به نظر من ما اول باید از از دیتا بیس تعداد رکوردها رو بدست بیاریم یعنی کدی رو به کوری بدیم که یه مقدار برگردونه و اون هم تعداد رکورد باشه نه اینکه سلکت کنیم
بعدش اگر بخواهیم مثلا به تعداد 10 تا دسته بندی کنیم بازهم کدی رو سلکت کنیم که از رکورد 1 تا 10 رو نشون بده و برای دیدن بقیه باید از مقدار پایانی دسته قبلی شروع کنیم و تا بعلاوه 10 همون مقدار ادمه بدیم یعنی اگه کسی به من بگه چطور میشه مقدار یک متغیر رو که در SQL server هست رو در یک متغیر در برناممون بریزیم اون وقت میشه با استفاده از کرسرها در اس کیو ال کاری رو بکنیم که مد نظر هست
لازم به ذکر هست که کرسرها در اس کیو ال وظیفه پیمایش رکوردها رو دارن و دستوراتی مثل
بعدی ، قبلی ، اولی ، آخری یا نشان دادن از شماره رکورد x بعلاوه یا منهای n کرد

SYNDROME
دوشنبه 23 اردیبهشت 1387, 07:54 صبح
برای تعداد رکودها می توانید اینجوری عمل کنید.


Select Count(*) As Count
From Tbl_Test

بهتر است سوال خود را برای نمایش 10 تا 10 تا رکوردها را بخش SQL مطرح کنید.
موفق باشید