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

نام تاپیک: مشکل هنگام Insert کردن رکورد به جدول

  1. #1

    Cool مشکل هنگام Insert کردن رکورد به جدول

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

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

    با سلام

    در رویداد Onshow شماره را ندهید.
    زمانی که کاربر دکمه ثبت یا ذخیره را زد Max شماره نامه ها را به دست آورید و سپس آن را به کاربر مورد نظر اختصاص دهید.

    Try
    No := MaxNo;
    // Save
    Except
    // Message
    End;

    MaxNoنام تابعی است که شماره بزرگترین نامه را به اضافه 1 می کند و در متغییر No می ریزد و اگر دو کاربر به صورت هزمان اقدام به ثبت کنند یکی اطلاعاتش با شماره 1 ذخیره می شود و دیگر پیغام خطایی رویت می کند و سپس دوباره که دکمه ثبت را بزند شماره 2 به کاربر فوق نسبت داده می شود.
    موفق باشد

  3. #3
    خوب اگه بخوایم با یه شماره قبلی یا چند شماره جلوتر این نامه رو ثبت کنیم باید چکارکنم؟
    (مثلا یه شماره رو قبلا استفاده کردیم که وارد دفتر نشده. وقتی به اون شماره می رسیم نباید نامه جدیدی با همون شماره ثبت بشه چطوری این شماره رو بصورت دستی وارد کنیم؟)

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

    با سلام

    اگر شما لیست کلیه شماره ها را در یک جدول داشته باشید می توانید بزرگترین عدد و یا عدد خالی بین آنها را برای کاربر انتخاب کنید و همان دستوری هم که در بالا نوشتم جلو ایجاد پیغام ناخواسته را می گیرد و می تواند خطا را مدیریت کنید.
    موفق باشید

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

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