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

نام تاپیک: حالی بودن رکوردست

  1. #1

    حالی بودن رکوردست

    سلام
    از کجا میتونم بفهمم بعد از کیوری گرفتن از یک رکورد ستا داخلش خالی هست
    از این دستور استفاده میکنم ولی ایراد میگیره
    If rsCustomers.Fields("name").Value = "" Then
    یک سوال
    recordcount چه کاری انجام میدهد ؟ برای من همیشه عدد 1- را بر میگرداند

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran-Tehran
    پست
    175
    Recordcount برای یک رکوردست ,تعداد رکوردهای موجود در آن را به ما می دهد.
    یعنی برای بررسی خالی بودن رکوردست می نویسیم
    if rsCustomers.RecordCount = 0 then
    ...

    برای من همیشه عدد 1- را بر میگرداند
    دقت بیشتری بکنید حتما یک جای کار را درست انجام نمی دهید.

  3. #3
    دوست عزیزم،
    برای اینکه RecordCount مقدار واقعی رو نشون بده، باید قبل از باز کردنRecordset، براش CursorLocation رو تنظیم کنید:
    MyRecordset.CursorLocation=adUseClient 


    موفق باشید،
    امین ثباتی MCSD

  4. #4
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229

    if (rst.eof=true) and (rst.bof=true) then
    ....
    end if

  5. #5
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    متد recordcount برای بعضی از provider ها جواب نمیده و همیشه مقدار 1- رو برمیگردونه

  6. #6
    در عبارت زیر مقدار count همیشه ۱- خواهد بود :

    (myrs.execute(query
    count=myrs.RecordCount

    برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :

    myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
    count=myrs.RecordCount

    :wink:

  7. #7
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    در عبارت زیر مقدار count همیشه ۱- خواهد بود :

    (myrs.execute(query
    count=myrs.RecordCount

    برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :

    myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
    count=myrs.RecordCount
    در بعضی از provider ها از قبیل اوراکل شما اصلا این قابلیت رو ندارید همچنین امکان سورت یا فیلتر کردن هم وجود ندارد
    و تازه بازکردن رکوردست از نوع static برای کسانی که میخواهند اطلاعات online رو ببینند (مثلا برنامه تحت شبکه) زیاد مفید نیست

  8. #8
    سلام
    اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount

    • do while not record1.eof
      list1.additem(record1("code")
      record1.movenext
      loop

  9. #9
    :flower:

  10. #10
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962
    اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount


    do while not record1.eof
    list1.additem(record1("code")
    record1.movenext
    loop
    عجیب ترین و غیر منطقی ترین راه حل :shock:

    if (rst.eof=true) and (rst.bof=true) then
    ....
    end if
    در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل :)

  11. #11
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    نقل قول:
    اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount


    do while not record1.eof
    list1.additem(record1("code")
    record1.movenext
    loop

    عجیب ترین و غیر منطقی ترین راه حل

    نقل قول:
    if (rst.eof=true) and (rst.bof=true) then
    ....
    end if


    در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل
    بله وقتی خود ado میتونه تشخیص بده که رکوردست خالیه چرا از حلقه استفاده کنیم

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

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