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

نام تاپیک: فیلتر کردن یک جدول ADO

  1. #1

    فیلتر کردن یک جدول ADO

    یک ADOTable رو با استفاده از یک ADOQuery فیلتر کردم که در اون تاریخ به تفکیک روز ماه و سال مشخص شده . نوع هر سه فیلد از نوع Nvarchar هستند . بعد از انجام فیلتر با پیغام زیر مواجه می شم.
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg ado.jpg‏ (71.0 کیلوبایت, 17 دیدار)

  2. #2
    VIP آواتار hr110
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    1,460
    ببخشید میشه بیشتر بدهید که چطور این کار رو انجام داده اید؟

    ضمناً من فکر میکنم جایی که از مقدار فیلد برای فیلتر کردن استفاده کرده اید ، از تابع QuotedStr() استفاده نکرده اید
    ... چه بگویم که غم از دل برود چون تو بیایی

  3. #3
    با تشکر
    فیلتر رو با دستور Format انجام داده ام . و از Quotedstr هم استفاده کرده ام .

  4. #4
    درود
    شما اگه دستورتون رو اینجا بگذارید، سریعتر به نتیجه میرسیم.
    فلويد گواهي مي دهد به آنکه زيستن در هنگامه‌ی استبداد، چه آسان روياها را واژگون مي کند، چه سهل بر چهره‌ی آزادی تيغ می‌کشد!

  5. #5
    با تشکر
    دستور رو براتون نوشتم
    نقل قول نوشته شده توسط داوود
    form11.ADOTable1.Filter:=format('(sday >= %s)and(sday <= %s) and (smonth >= %s) and (smonth <= %s) and (syear >= %s) and (syear <= %s)',[(Quotedstr(form12.Edit3.Text)),(Quotedstr(form12.E dit6.Text)),(Quotedstr(edit2.Text)),(Quotedstr(edi t5.Text)),(Quotedstr(edit1.Text)),(Quotedstr(edit4 .Text))]);.

  6. #6
    این کد شما که ربطی به ADOQuery نداره؟!!!!!!
    ضمنا فیلدهای sday و... رو از نوع int تعریف کنید و QuotedStr رو بردارین. در غیر این صورت حداقل از نوع varchar یا char تعریف کنین. آخه چرا یونیکد؟؟!
    توجه داشته باشین که در صورت استفاده از varchar و مشابه آن، برای اینکه نتیجه درست از مقایسه بگیرین حتما اعداد باید صفرچین شده باشند. مثلا عدد 1 رو بصورت 01 ذخیره کنین. وگرنه این مقایسه تون جواب نمی ده. برای همین می گم از int استفاده کنین که منطقی تره.

  7. #7
    نقل قول نوشته شده توسط Naficy
    این کد شما که ربطی به ADOQuery نداره؟!!!!!!
    ضمنا فیلدهای sday و... رو از نوع int تعریف کنید و QuotedStr رو بردارین. در غیر این صورت حداقل از نوع varchar یا char تعریف کنین. آخه چرا یونیکد؟؟!
    توجه داشته باشین که در صورت استفاده از varchar و مشابه آن، برای اینکه نتیجه درست از مقایسه بگیرین حتما اعداد باید صفرچین شده باشند. مثلا عدد 1 رو بصورت 01 ذخیره کنین. وگرنه این مقایسه تون جواب نمی ده. برای همین می گم از int استفاده کنین که منطقی تره.
    با عرض معذرت از اینکه به جای ADOTable گفتم ADOQuery
    من ADOTable رو با استفاده از دستورات بالا فیلتر کردم .
    نوع فیلدها رو هم تغییر دادم و از nvarchar به int تغییرشان دادم مقادیر s% رو به d% تغییر و دستور Quotedstr رو هم برداشتم ولی باز هم همان پیغام رو میده

  8. #8
    میشه یکی جواب بده لطفا.......

  9. #9
    یه احتمال اینه که مقدار داخل editbox ها عدد نباشد. (و باید بدونید یک رشته خالی یا همون ('') عدد محسوب نمی شه)

    پی نوشت: کلا می گم. کاش پیغام خطا رو به جای تصویر گذاشته بودین. چون این آخر وقتیه(!!) هر چی روش زدم تصویر رو نیاورد که یه بار دیگه ببینمش!!

  10. #10
    اینبار موفق شدم پیغام رو ببینم! بی خیال صحبت قبلی من شوید.
    شما از SqlServer استفاده می کنید نه؟ بد نیست یه مقدار ساده ی رشته ای درون عبارت filter بذارین و امتحان کنین جواب می ده یا نه. (منظورم اینه که از توابع format و ... استفاده نکنین و یه رشته ساده بنویسین)

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

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