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

نام تاپیک: دستور BookMark به خط مورد نظر نمی رود؟

  1. #1
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    دستور BookMark به خط مورد نظر نمی رود؟

    با سلام
    دوستان بنده کد زیر را نوشته ام.

    Var
    BookMark : TBookmark;
    Begin
    BookMark := ADO.GetBookmark;
    ADO.Active := False;
    ADO.Active := True;
    ADO.GotoBookmark(BookMark);
    End;

    در همه موقع کد زیر درست کار می کند.ولی زمانی که فیلد Code(کلید است) تغییر می دهم
    به رکورد مورد نظر بر نمی گردد.
    ADO بر اساس فیلد Code مرتب شده و فیلد Code من 1 است و در خط اول حالا فیلد را تغییر می دهم و مقدار Code را برابر 10 می گذارم و رکورد مثلاً به خط 10 می رود(چون بر اساس Code مرتب شده است)ADO بر روی رکورد هنوز قرار دارد وی زمانی که تابع بالا را فراخوانی می کنم دیگر به رکورد مورد نظر بر نمی گردد.
    فکر می کنم به خاطر این است که فیلد کلید تغییر کرده است.
    حالا باید چه کار کنم.

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    71
    توصیه میکنم برای هر کلاست یک پراپرتی تعریف کن که نام کلید اصلی اون کلاس رو بیان میکنه
    بعد از ذخیره اطلاعات مقدار اون فیلد رو نگهداری کن و بعد از requery روی دیتاستت یک locate بزن
    مشکلت رو با بوک مارک حل نمیکنه اما صورت مسئله رو جواب میده
    آخرین ویرایش به وسیله object : دوشنبه 28 خرداد 1386 در 02:14 صبح دلیل: ساعت 3:44

  3. #3
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    نقل قول نوشته شده توسط object مشاهده تاپیک
    توصیه میکنم برای هر کلاست یک پراپرتی تعریف کن که نام کلید اصلی اون کلاس رو بیان میکنه
    بعد از ذخیره اطلاعات مقدار اون فیلد رو نگهداری کن و بعد از requery روی دیتاستت یک locate بزن
    مشکلت رو با بوک مارک حل نمیکنه اما صورت مسئله رو جواب میده
    روشی خوبی را پیشنهاد دادید و این قبلا به ذهن خودمهم رسیده بود.
    ولی این دستور در یک جای برنامه استفاده نمی شود و یک تابع است و من در کل قسمتهای برنامه از آن استفاده می کنم.
    آیا دوستان راه حل دیگری می توانند پیشنهاد کنند.
    هنوز مشکل بنده حل نشده است؟

  4. #4
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562
    چرا از شماره رکورد استفاده نمی کنی?



    var x : Integer ;
    begin
    x := ADOT.RecNo ;;
    ADOT.Requery();
    ADOT.RecNo := x ;
    end

  5. #5
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    نقل قول نوشته شده توسط merced مشاهده تاپیک
    چرا از شماره رکورد استفاده نمی کنی?


    var x : Integer ;
    begin
    x := ADOT.RecNo ;;
    ADOT.Requery();
    ADOT.RecNo := x ;
    end
    باتشکر از کمک شما.
    ولی بارها در باره این در سایت بحث شده.
    ممکن است رکوردی که الان درخط 2 است بعد از Refresh به خط 10 برود.
    باز هم مشکل من حل نشد.منتظر نظر دوستان هستم.

  6. #6
    BookMark یک پوینتر هست به محل رکور برای همین هم وقتی ترتیب اطلاعات بهم بخوره ، این اشتباه رو میکنه ، راه حلت نگه داشتن کلید رکوردی که روش هستی و دوباره Locate کردن هست که فکر کنم قبلا هم بهت پیشنهاد دادند دوستان، همونطوری هم که خودت گفتی استفاده از RecNo درست نیست.

  7. #7
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    با تشکر از همه دوستان که پیشنهادات خود را در اختیار بنده گذاشتند.
    بس بهتر است بگوییم اگر از Locate به جای BookMark استفاده کنیم بهتر است و میزان اشتباه کمتر.
    علیرضا جان دست شما هم درد نکنه.

تاپیک های مشابه

  1. ارتباط بین دلفی با Bookmark مایکروسافت ورد
    نوشته شده توسط حرفه ای در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: چهارشنبه 17 آذر 1389, 12:49 عصر
  2. فایل نمونه برای bookmark(تعیین رکوردجاری )
    نوشته شده توسط moustafa در بخش Access
    پاسخ: 0
    آخرین پست: جمعه 14 بهمن 1384, 10:19 صبح
  3. bookmark
    نوشته شده توسط farah در بخش Classic ASP
    پاسخ: 1
    آخرین پست: یک شنبه 23 مرداد 1384, 17:34 عصر

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

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