به اندازه کافی قدرت داره. شما باید طوری کد بنویسید که مثلا صد مگ داده یه دفعه منتقل نشه به mmb. در مورد نگه داشتن رکورد ها محدودیتی برای شما نیست.
1- خب با این شرایط به نظرتون استفاده از مثال کامل محمود که تو انجمن هست و با نوشتن اولین کاراکتر شروع به جستو جو می کنه ممکنه تو اجرای برنامه با تعداد رکورد بالا مشکل پیش بیاره؟ اگه اینطور هست بهتر نیست از محمود بخوایم این قسمت برنامشو یه کم تغییر بده یا نمونه سرچ سه کاراکتریش رو تو همون پست بزاره چون فک کنم خیلی از کاربرا دارن از مثال ایشون استفاده می کننحجم کلی دیتابیس چندان اهمیتی نداره، مهم اینه که داده هایی که پلاگین به برنامه میفرسته چقدر باشه مثلاً هیچوقت اجازه ندید تعداد حروف کلمه ی مورد جستجو کمتر از (بعنوان مثال) سه حرف باشه (گمان نمیکنم کتابی باشه که اسمش دو حرفی باشه، از طرفی ممکنه هزاران کتاب در دیتابیس موجود باشه که با حرف "ب" شروع بشه، پس منطقی نیست اجازه بدید کلمه ی تک حرفی مورد جستجو قرار بگیره) یا مثلاً اگر یک جستجو نتیجه ی زیادی داره (مثلاً چند ده هزار رکورد)، با استفاده از کلمه ی کلیدی limit رکورد ها رو مثلاً 100 تا 100 بخونید و نمایش بدید. مسائلی از این دست.

برای خوندن تعداد محدودی از داده ها از limit استفاده میشه. فرض کنیم بانک اطلاعاتی ما 100 رکورد داره. کد زیر دو تاش رو بر می گردونه:
PHP Code:
SELECT * FROM employees LIMIT 2; id first_name last_name *** email---- ---------- ---------- --- --------------------101 Alex Gladstone M <a href="mailto:[email protected]">alex@mycompany.com</a>102 Brenda Dudson F <a href="mailto:[email protected]">brenda@mycompany.com</a>
limit بعد از عبارت شرطی where میاد و در آخر عبارت select قرار میگیره.
PHP Code:
SELECT * FROM employees WHERE s = 'M' ORDER by last_name, first_name LIMIT 1;
به این ترتیب شما اول 100 رکورد می خونید و با زدن کلید بعدی 100 مورد دیگه رو خونده و جایگزین می کنید. این کار لازمش این هست که در ابتدا تعداد رکورد ها رو داشته باشید
که بتونید قطعه قطعه کردن رو صورت بدین.
. من الان فقط تونستم اطلاعات به نمایش در اومده تو پلاگین uo رو محدود کنم . حالا با چه کدی اول باید تعداد رکوردها رو بگیرم و بعد تو کلیدهای پیمایشی که برای حرکت بین رکورهای تکه تکه شده باید دقیقا چه کدی بنویسیم

- ابتدا لازم هست تا تعداد کل رکورد های مد نظر رو با COUNT بدست بیاریم. چیزی شبیه کد زیر:
PHP Code:
- در ادامه ما توسط LIMIT تعداد 100 رکورد اول رو می خونیم:
PHP Code:
SELECT * FROM employees LIMIT 100;
- بخش LIMIT می تونه دو مقدار بگیره. یکی تعداد رکوردهایی که میخایم برگشت داده بشه و دوم از جایی که میخایم این تعداد خونده بشه. مثلا اگر ما بخایم دو رکورد بخونیم و این دو رکورد دومین و سومین
رکورد حاضر در جدول ما باشند از کدی شبیه این استفاده میشه:
PHP Code:
SELECT * FROM employees LIMIT 2,2;
- بنابراین ما وقتی صد رکورد اول رو خوندیم از این به بعد می تونیم برای صد رکورد بعدی داشته باشیم:
PHP Code:
SELECT * FROM employees LIMIT 100,100;
حالا اینجا نیاز داریم توی یه متغیر شماره آخرین رکوردی رو که خونده شده داشته باشیم تا در دفعات بعد بدونیم از کجا باید بخونیم.
فلوچارت عملکرد دستور SELECT و LIMIT:
مشاهده پیوست 87040
www.sqlite.org/lang_select.html


مثال همراه پلاگین رو بررسی کیند، همه ی توابع رو به همراه کارکردشون می تونید ببینید.
تابع LVItemCount برای بدست آوردن تعداد سطر های مجود در شئ ListView هست.


نیاز نیست تعداد آیتم های لیست ویو رو بگیریم چون کمکی بهمون نمیکنه (درواقع تعداد آیتم ها برابر با Limit هست)
یه متغیر بنام Index تعریف شده که مقدارش برابر با تعداد آیتم هایی که نمایش داده شده هست (هر بار با Limit جمع میشه)، با استفاده از این و تعداد کل رکوردها میتونید چیزی کخ میخاید رو اجرا کنید.





[color=#0000FF]If[/color] (Index >= TotalRecords) [color=#0000FF]Then[/color]
[color=#000090][b]Message[/b][/color]("No more [color=#0000FF]To[/color] show !","")
[color=#000090][b]Return[/b][/color]()
Index = [color=#ff0000]0[/color]
OFFSET = [color=#ff0000]0[/color]
[color=#0000FF]End[/color]
[color=#0000FF]If[/color] (Index) [color=#0000FF]Then[/color]
OFFSET = OFFSET + LIMIT
[color=#0000FF]End[/color]
Index = Index + LIMIT
کد:[COLOR=#0000ff]If[/COLOR] (Index >= TotalRecords) [COLOR=#0000ff]Then[/COLOR] [COLOR=#000090][B]Message[/B][/COLOR]("No more [COLOR=#0000ff]To[/COLOR] show !","") [COLOR=#000090][B]Return[/B][/COLOR]() Index = [COLOR=#ff0000]0[/COLOR] OFFSET = [COLOR=#ff0000]0[/COLOR] [COLOR=#0000ff]End[/COLOR] [COLOR=#0000ff]If[/COLOR] (Index) [COLOR=#0000ff]Then[/COLOR] OFFSET = OFFSET + LIMIT [COLOR=#0000ff]End[/COLOR] Index = Index + LIMIT
اگر توجه کنید کل کد یه جمع و تفریق ساذه ست، شما با تغییر مقدار OFFSET میتونید تعیین کنید که از رکورد شماره ی چند، به اندازه ی LIMIT در نتیجه ی جستجو لحاظ بشه
یعنی برای دکمه برگشت، کافیه مقدار LIMIT رو از OFFSET کم کنید.









