نمایش نتایج 1 تا 16 از 16

نام تاپیک: خواندن رکوردها از SQL به تعداد دلخواه در هر بار

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران
    پست
    101

    خواندن رکوردها از SQL به تعداد دلخواه در هر بار

    با سلام
    کسی میدونه چطوری میشه هنگامی که با ADO به بانک SQL متصل شده ایم و Table را ACTIVE میکنیم
    همه بانک خوانده نشه بلکه به تعداد دلخواه از رکوردها باز بشه و اگه بین رکوردها حرکت کردیم و از رکورد
    آخری گذشتیم هر بار به تعداد قبلی از رکوردها خوانده شود و به رکوردهای باز اضافه بشه .


    با تشکر فراوان

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران
    پست
    101
    چرا کسی جواب نمیده :cry: یکی کمک کنه دیگه :(

  3. #3
    با سلام
    برای مورد اول

    select top(n) * from tablename where ..

    برای مورد بعدی من متوجه منظورت نشدم. یعنی مثلا اول 20 رکورد انتخاب کنی بعد اگه از 20 رد شدی دوباره به 20 قبلی اضافه بشه؟
    یعنی 21 تا select شه و الی آخر؟
    به نظر من این کار یه کم غیر عادیه . برای این کار دستور SQL رو باید تو خود برنامه بنویسی

    n:=20;
    ADOQUERY!.close;
    ADOQuery1.SQL.text:='select top ('+#39+inttostr(n)+#39+') * from tablename';
    ADOQuery1.open;

    حالا اگه به رکورد آخر رسیدیم n رو تو برنامه به n+1 تغییر بدیم.

  4. #4
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    برای قسمت اول جواب دوستمون درسته!! ولی برای اینکه بخواهیم بطور متوالی بخونیم اون روش جواب نمیده! چون از اول دوباره میخونه!! در ado نکانیزمی هست که به تعداد مورد نظر بخونه و بیاره در حافظه بدون اینکه خودت مدیریت کنی

  5. #5
    بطور کلی تکنیکهای ADOو BDE از بافر برای نمایش و پردازش استفاده می کنند ... اگر می خواهید که برنامه بدون استفاده از بافر عمل کند می توانید از DbExpressاستفاده کنید اما بیاد داشته باشید که این تکنیک یک طرفه است یعنی فقط رو به جلو حرکت می کند برای اطلاعات و شرح بیشتر به مقاله ذیل رجوع کنید
    http://www.javansoft.com/learning119.htm

    آیا ممکن است بپرسم چرا می خواهید
    همه بانکک خوانده نشده بلکه به تعداد دلخواه از رککوردها باز بشود؟

  6. #6
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    آقای وکیلی!! خوب اگه تعداد رکوردها خیلی زیاد باشه که 200000 سال طول میکشه تا تمام ذکوردها رو بخونه!!! :lol:

  7. #7

    Re: جواب

    نقل قول نوشته شده توسط SReza1
    ولی برای اینکه بخواهیم بطور متوالی بخونیم اون روش جواب نمیده! چون از اول دوباره میخونه!! در ado نکانیزمی هست که به تعداد مورد نظر بخونه و بیاره در حافظه بدون اینکه خودت مدیریت کنی
    خوب آقا رضا مکانیزمی که گفتی چطور می شه ازش استفاده کرد؟

  8. #8
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    یم property به نام cashe هست که به تعداد مورد نظر در ram می‌آره!!
    البته اگه دلفی کارید باید در adodataset ببینید!! امتحان کنید! :shock: :wink:

  9. #9
    شما هم وقتی کتاب را می خوانید تمام کتاب را در دست دارید ولی همه انرا یکجا نمی خوانید .. می توانید برای امتحان در یک حلقه For یک میلیون رکورد را در Table اضافه کنید ...سپس آنرا باز کنید .. اگر حرف شما درست باشد اصلا فایل نباید باز شود ولی خواهید دید که باز می گرددو باسرعت خوبی روی ان حرکت می کنید

  10. #10
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    ما که تا حالا ندیدیم کسی این همه رکورد رو بخونه!! شما باید بخشی رو که بخواهید بخونید در حافظه بیارید!!!! اگه تونستی در یک سیستم client-server و یا 3 لایه این کار رو بکنی جایزه داری! :lol:
    :twisted:

  11. #11
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    راستی یخ چیزه دیگه!! تو که نمی تونی تمام کتاب رو بخونی بلکه اونو صفحه به صفحه می خونی نه همشو!! حالا تو بانکم همینه!!! تا اونجا که لازم داری بخون!! اینطوری که شما میگی خیلی سخته

  12. #12
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    4

    در خود دستور sql باید دنبال راه گشت نه در دلفی

    با سلام من هم مشکلی مانند شما دارم فقط با sql
    server چون mysql خودش دستوری دارد به نام limit که این عمل را انجام میدهد ولی
    sqlserverاین دستور را ندارد اگر شما می دانید به من هم بگویید

  13. #13
    آیا ممکن است بطور دقیق مشکل خود را بفرمایید؟

  14. #14
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    بابا با cash کار کنید!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  15. #15

    Re: جواب

    نقل قول نوشته شده توسط SReza1
    برای قسمت اول جواب دوستمون درسته!! ولی برای اینکه بخواهیم بطور متوالی بخونیم اون روش جواب نمیده! چون از اول دوباره میخونه!! در ado نکانیزمی هست که به تعداد مورد نظر بخونه و بیاره در حافظه بدون اینکه خودت مدیریت کنی
    کاملا درسته .

  16. #16
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702

    جواب

    بابا چه عجب بالاخره یکی پیدا شد!! :oops:

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •