تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 3 از 4 اولاول 1234 آخرآخر
نمايش نتايج 21 به 30 از 32

نام تاپيک: محدودیت در adoquery (محدودیت در جستجوها )

  1. #21
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    پيش فرض

    می خواستم بگم اگه می شه بفرستین یک نمونه برنامه تا رسیدن به خط آخر که نوشتین ...
    فکر کنم قضیه اون سه نقطه در پست قبلی حل شده باشه .

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

    از هرچی بگذریم سخن دوشت خوش تر است ( اگر ما رو دوست خودت بدونی و امیدوارم که سوء تفاهم ها برطرف شده باشه )

    خوب سوال شما این است : (اگر اشتباه برداشت کردم شما ببخشید ولی یه چیزی رو مد نظر داشته باش ! داداش بچه زدن نداره ! )

    سوال شما :
    می خواهم از بین رکورد هایی که انتخاب کردم ( براساس وقت آزاد و ساعت و غیره ) مشخص کنم که مثلا N تا رو به صورت تصادفی برام نشون بده ؟

    برای این یه جوابی دارم ولی اون قسمتی رو که گفتید می خواهید وقتی 10 تا رو گفتید برنامه 11 تا رو انتخاب کنه رو نگرفتم !!

    ولی جواب شما :
    دو راه پیشنهاد می کنم !

    1 ) شما هر چند تا از رکورد رو که می خواهید از بانک به صورت تصادفی انتخاب کنید رو در داخل یک حلقه قرار می دید و به تعداد حلقه رکورد رو از بانک می خونید و اگر رکوردی که خوندید با رکورد های خونده شده قبلی برابر بود دوباره از مقدار حلقه یک واحد کم می کنید (منظور از حلقه قطعا for نیست ها while هست !! )
    اگر برای این کار مثال خواستی بگو !

    2 ) شما یک آرایه که نه شما یک stringList ایجاد می کنید و تمام رکورد هایی رو که می خواهید به صورت تصادفی از بین آنها تعداد n تا رو انتخاب کنید رو در این stringlist اضافه می کنید و بر اساس تعداد مقادیر موجود در این stringlist شما یک عدد تصادفی ایجاد می کنید و مقدار این خط از stringlist رو می خونید و همان خط رو حذف می کنید ...
    اگر برای این کار مثال خواستی بگو !

    راه اول بیشتر برای مواقعی خوبه که رکوردهای شما بیشتر باشه مثلا شما از بیین 1000 تا رکورد 10 تا رو انتخاب کنید !
    روش دوم برای مواقعی که تعداد رکورد شما کمتر باشه خیلی خوبه مثلا از بین 20 تا رکورد 10 تا رو انتخاب کنید !

    حالا هر کدوم رو خواستی بگو !


    و اگر یه جواب خوب می خواهی این ها رو مشخص کن :

    1 ) نام جدولی که می خواهی اطلاعات رو ازش بخونی

    2 ) نام فیلدها این جدول

    3 ) نام فیلد کلید جدول ( اگر نداشته باشه که کارکمی مشکل می شه !! ولی امیدوارم یک فیلد از نوع کلید داشته باشه )

    4 ) اون قسمت از فیـلـتری رو که نوشتی در این قسمت قرار بده منظورم اون قسمت است که داده ها رو بر اساس وقت آزاد و غیره فیـلــتر کردی ( فکر کنم این قسمت رو حل کرده بودی )

    5 ) نام Adoquery ای رو که دستورات sql رو توش می نویسی تا بانک رو برات فـیـلـتر کنه رو بنویس

    6 ) چه چیزی رو می خواهی برنامه برات نشون بده رو مشخص کن مثلا می خواهی برنامه نام این افرار رو برات نشون بده یا می خواهی به صورت یک stringList برات پاس بده !

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

  2. این کاربر از as13851365 بخاطر این مطلب مفید تشکر کرده است


  3. #22
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    12

    ببین یه راه حل ساده ساده برات پیدا کردم که خیلی خوشت می آید

    فقط کافیست که مقدار کد زیر رو در کد جستجوی خودت اضافه کنی ! باور کن خیلی ساده است

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مقدار x تعداد رکوردی است که می خواهی به صورت تصادفی انتخاب کنی

    این هم لینک مربوط به جستجوی من
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    البته این کد در بانک mysql و برنامه php کار کرد وقت نداشتم تو دلفی هم امتحان کنم ولی احتمالا به جواب برسی

    اگر باز مشکلی داشتی بگو

  4. این کاربر از as13851365 بخاطر این مطلب مفید تشکر کرده است


  5. #23
    پروفشنال P A R M I S's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    652

    پيش فرض

    راستشو بخواین من اهل شوخی هستم اما باید در شوخی هامون حواسمون جمع باشه که یه وقت بی احترامی نکنیم اینو که انشاا... خودتون قبول دارین راستشو بخواین دوست ندارم تو انجمن خوبی مثل این انجمن در اون بصورت نامناسب هم دیگر رو خطاب قراردادن یا چیزای دیگه باب بشه و اسمشو بذاریم شوخی شما که به این خوبی دارین کمک می کنید و کمک کردنم بلدید چرا بعداز کمک تهش با یه جمله کار رو خراب می کنید راستشو بخواین من آدم کینه ای نیستم و ممنون از اینکه کمک کردین تستش می کنم ببینم جواب می ده یا نه بابت اونم که گفتین دنبال باش خودم توی دلفی به خیلی چیزای جالب رسیدم ولی اینکه آدم بخواد همه چیز رو خودش بفهمه شاید شدنی باشه ولی زمان خیلی زیاد می بره بازم ازتون ممنونم

  6. #24
    پروفشنال P A R M I S's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    652

    پيش فرض

    1- نام جدولم ttclock هست
    2- فیلدهام

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    3- فیلد ido کلید است
    4-
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    5- ازadoquery1 هم استفاده می کنم
    6- می خوام برنامم کل فیلدهاشو در دی بی گرید نشون بده (کد نام نام خانوادگی تاریخ و آیا می شه مثلا اگه من الان ساعت امتحانی اول رو جستجو کردم فقط ستون مربوط به ساعت امتحانی اول رو به همراه اطلاعات خط قبل در دی بی گرید نشون بده اگه نمی شه کل ستون های ساعات (ساعت امتحانی اول ، ساعت امتحانی دوم ، ساعت امتحانی سوم و ساعت امتحانی چهارم ))
    7- ضمنا دلفی 6 هست و بانکsql و اینکه تعداد سطرهای لازم رو (تعداد مراقب لازم ) که می خواد در دی بی گرید نشون بده از edit5.text دریافت می کنه ممنون

    این رو هم که گفتین(((
    $q="select * from $table order by rand() limit "+x
    مقدار x تعداد رکوردی است که می خواهی به صورت تصادفی انتخاب کنی)))
    می شه بگین در کجای برنامم باید استفاده کنم و اینکه اصلا qچی هست از چه نوعی هست و $ ...
    Last edited by P A R M I S; 15-10-2008 at 21:17.

  7. #25
    پروفشنال P A R M I S's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    652

    پيش فرض

    برای این یه جوابی دارم ولی اون قسمتی رو که گفتید می خواهید وقتی 10 تا رو گفتید برنامه 11 تا رو انتخاب کنه رو نگرفتم !!

    ((همون 10تا رو نشون بده نه 11 تا رو اشتباه شده بود ))

  8. #26
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    سلام
    متأسفانه تاپيك با پستهاي بيهوده شلوغ شد.
    اگر بازم دوست دارين از برنامه من استفاده كنيد فقط كافيه كه اين قطعه كد رو به انتهاي كد كليد Random اضافه كنيد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    يعني در نهايت كل تابع به اين صورت در مياد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    توجه كنيد كه اگر اين تابع رو در يك تابع تعريفي (كه خودتون تعريف كردين) نوشتين، به جاي Button1.click بايد تابع خودتون رو فراخواني كنيد.
    توجه: واقعيتش رو بخواين اين الگوريتم سرعت جستجو و درخواست شما رو پايين مياره، حالا اگه بخواين مي تونيد استفاده كنيد. ولي من شخصاً راضي نيستم. توي اينترنت گشتم تا راه حل بهتري پيدا كنم. نشد. سطح دانش من فعلاً‌ تا همين حد بيشتر قد نداد. شايد اساتيد و دوستان ديگه، راه حل بهتري رو در اختيار شما قرار بدن.
    موفق باشين

  9. این کاربر از romixery بخاطر این مطلب مفید تشکر کرده است


  10. #27
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    پيش فرض

    این رو هم که گفتین(((
    $q="select * from $table order by rand() limit "+x
    مقدار x تعداد رکوردی است که می خواهی به صورت تصادفی انتخاب کنی)))
    می شه بگین در کجای برنامم باید استفاده کنم و اینکه اصلا qچی هست از چه نوعی هست و $ ...
    من گفتم که این کد رو در php امتحان کردم در واقع اون $q مقدار همان adoquery1.SQL.Add است و $table هم نام جدول شما می باشد !

    ولی در حالت کلی اگر شما در هر ساعت ( سایت اول .... ) بخواهید که به صورت تصادفی n تا رکورد رو انتخاب کنید بهتر است از کد زیر استفاده کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    لازم به ذکر است که x تعداد رکورد های تصادفی است که می خواهید انتخاب کنید!

    ولی من هرچی امتحان کردم جواب نداد ! فکر کنم این کار ها بیشتر مختص mysql و غیره باشه من از این روش در php استفاده کردم هیچ مشکلی نداشت !!! پس باید به فکر یک تابع باشیم که به نظرم تابعی رو که romixery نوشته خوبه ! ولی باید یه جاهاییش رو اصلاح کرد مثلا اگر می خواهید که مقدار فیلد ها رو صفر در نظر بگیرید بهتر است از دستورات sql برای این کار استفاده کنید مثلا
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در ضمن از کد زیر برای چه منظور استفاده کردید ؟؟؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر می خواهید که تعداد رکورد های انتخاب شده رو به دست بیارید فکر کنم راه ساده تری هم باشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با این کار خیلی زودتر به جواب می رسید

  11. این کاربر از as13851365 بخاطر این مطلب مفید تشکر کرده است


  12. #28
    پروفشنال P A R M I S's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    652

    پيش فرض

    با سلام
    اون قسمت از برنامه رو که دستور limit داره قبلا در اینترنت پیدا کرده بودم که اجرا نمی شد و پیغام incorrect syntaxnear 'limit' a می داد و بخاطر اینکه پست ها شلوغ نشه ننوشتم که جواب نمی ده
    و کلا اون برنامه romixeryرو قبلا در اینترنت پیدا کرده بودم اولا نمی دونستم اصلا چه طوری عمل می کنه یعنی
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    از این دستورات برای چی استفاده کرده (مخصوصا آخری ) و اینکه اصلا چرا باید مقدار فیلد ها رو صفر در نظر بگیریم (طبق اونچه که نوشتین )
    و در مورد آخری هم یعنی بدست آوردن نعداد رکوردها رو قبول دارم که با خوندن مطالب آقا فرهاد فهمیده بودم که دیگه فرصت بازگشت و درست کردن اون رو نداشتم و اون برنامه ای رو که می خواستین بنویسین همون هست که در پست 27 قسمت limitنوشتین یا نه هنوز انجام ندادین ؟ اگه دارین روش کار می کنین بگین تا باز هم برای جواب به انجمن سر بزنم ؟
    Last edited by P A R M I S; 16-10-2008 at 19:46.

  13. #29
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    12 انتخاب تصادفی رکوردها بدون تکرار

    ببین با این برنامه ای که romixery نوشته شما یک فیلد از نوع عدد با نام index باید در جدول اضافه کنی و برای این که بتونی رکورد های تصادفی رو انتخاب کنی اول کل انتخاب ها رو صفر می کنی که این همان index=0 می شه

    بعد به تعداد رکورد تصادفی مقدار index رو یک می کنی و در آخر هم براساس مقدار index=1 جدول رو فــیلتر می کنی و به خواسته خودت می رسی!!

    به نظر من راه حل ایشون یک راه حل خوبی است

    ولی راه حل من نیازی به رکورد اضافی نداره و فکر کنم تو همین ساعت ها ( نه روز ها ) یه نمونه برنامه برات در این تایپیک قرار بدم

    ---------------------------------------------------------------------------------

    این هم از فایل مورد نظر :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    بعد از این که به این صفحه رفتی دنبال کلمه Download File بگرد درست وسط صفحه قرار داره بعد روش که کلیک کنی کادر دانلود باز می شه
    بعد اگر فایل رو با پسوند html ذخیره کرد پسوندش رو به rar تغییر بده و از زیپ خارجش کن ( برای opera )
    Last edited by as13851365; 16-10-2008 at 22:05. دليل: آپلود فایل :

  14. این کاربر از as13851365 بخاطر این مطلب مفید تشکر کرده است


  15. #30
    پروفشنال P A R M I S's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    652

    پيش فرض

    با سلام
    و ممنون از کمکتون می خواستم ازتون بپرسم این برنامه ای که نوشتین آیا با دلفی 6 که بانکش sql باشه مشکل داره یا نه ؟ 2 تا مشکل دارم اگه می تونید کمکم کنید
    مشکل 1 - چون من هنگامی که از همین برنامه استفاده می کنم و اونو به جدول موجود دربانک خودم (sql) وصل می کنم موقع اجرا پیغامی می ده و برای این خط برنامه
    a.Items.Add(inttostr(ADOQuery3ido.value));

    خطا می گیره و اینم پیغام خطاش
    [Error] Unit1.pas(82): There is no overloaded version of 'IntToStr' that can be called with these arguments



    البته همون ابتدا هم که f9 رو برای اجرا می زنم پیغام زیر رو میده
    Field form1.adoquery3name does not have a corresponding component . remove the declaration? Yes no

    که با زدن دکمه no دوباره پیغامی به همین صورت با form1.adoquery3ido می یاد و با زدن دکمه no دوباره پیغامی به همین صورت با form1.adoquery3familly می یاد و با زدن دکمه no پیغام error بالا می یاد

    مشکل 2 - ( البته برنامتون با بانک خودتون درست جواب می ده و همچنین من یک بانک در sql با نام table1 ساختم و فیلدهاش رو همون id,name,family,tel گذاشتم و جواب داد ولی به جدول دیگری که نامش ttclock هست متصل که می کنم اسم فیلد کد اون idoهست و با همون adoquery1 شما استفاده کردم و فقط ارتباطadoconnectionرو به sqlوصل کردم و ارتباط adoquery1 رو هم به (در قسمت sql می نویسم select * from ttclock و می رم و active شو true کنم که پیغام می ده که
    Adoquery1:field ‘id’ not found
    می خواستم ببینم مشکلش چیه ؟ ممنون ) ) (البته اینو بگم که ارتباطاتم رو تا جایی که می دونم درست انجام می دم )

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •