آخرين پست هاي ارسالي انجمن ايران دلفي

تماشای رایگان فیلم ایرانی ، خارجی و کودک آکادمی دلفی
نمایش نتایج: از 1 به 16 از 16

موضوع: درج شماره ردیف اتوماتیک

  1. #1
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.

    درج شماره ردیف اتوماتیک

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

    در ابتدا من از این روش استفاده کردم :
    خواندن آخرین شماره پرونده موجود در بانک و افزودن یک واحد به آن

    یه مشکلی که بوجود اومد این بود که لا به لای شماره پرونده ها ، شماره های تکراری وجود داشت که نمی دونم چطوری این اتفاق افتاد.چون کاربرش یک شخص دیگه هست.

    من روش رو عوض کردم :
    خواندن تعداد رکوردهای موجود در بانک و افزایش یک واحد به آن
    دوباره که برنامه رو بررسی کردم دیدم سه تا پرونده تکراری وجود داره

    در روش اول پرونده های تکراری زیادتر بود

    ممنون میشم راهنمایی کنین که چه اتفاقی میفته و راه جلوگیریش چیه.

  2. #2
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    سلام.روشتون اشتباهه.
    اولا : باید اون فیلد رو در دیتابیس اتون*pk**تعریف کنید تا تکراری نپذیره
    دوما : باید از* روش*Sequence Number *استفاده کنید.
    مثال زیر برای SQLServer2012* است و در اوراکل هم تقریبا به همین صورته*

    Create a Sequence with Initial value 1 and Increment by 1
    کد:

    کد:
    CREATE SEQUENCE [DBO].[SequenceExample] AS INT 
    START WITH 1 
    INCREMENT BY 1
    GO


    Using Sequence in an Insert Statement
    کد:

    کد:
    CREATE TABLE dbo.Employee(ID INT,Name VARCHAR(100))
    GO
    --INSERT RECORDS to the Employee table with Sequence object
    INSERT INTO dbo.Employee VALUES
    (NEXT VALUE FOR DBO.SequenceExample,"BASAVARAJ BIRADAR"), 
    (NEXT VALUE FOR DBO.SequenceExample,"SHREE BIRADAR"),
    (NEXT VALUE FOR DBO.SequenceExample,"PRATHAM BIRADAR")
    GO
    -- CHECK THE RECORDS INSERTED IN THE TABLE
    SELECT * FROM dbo.Employee WITH(NOLOCK)
    GO


    منبع :[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]




    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  3. #3
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    در عکس زیر هم به صورت ویزاردی درSQLServer*نسخه ی 2008*کار رو انجام دادم.


    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  4. #4
    مدیر انجمن b_e_shamlu آواتار ها
    تاریخ عضویت
    July 2013
    محل سکونت
    کرج
    سن
    56
    نوشته ها
    123
    تشکر ها
    149
    تشکر شده 94 بار در 46 ارسال.
    ضمنا توضیح دیگری هم بدهم که این نوع شماره دهی مواقعی به درد میخوره که که شما میخواهید از این کد بعنوان آی دی استفاده کنید !!!
    اما اگر شما بخواهید از شماره های بعنوان ردیف استفاده کنید و نمی خواهید جای خالی داشته باشد ( یعنی اگر ردیف 3 را حذف کردید دو باره ردیف 3 را بسازید باید به موارد زیر توجه کنید
    1- فقط مواقعی شماره را بسازید که از صحت دادهای خود اطمینان دارید و دستور ساخت را بدهید
    2- بعداز مورد یک رکورد را قفل کنید ( در شبکه )
    3- برای ساخت رکورد دستور جستجوی بسازید که شماره خالی را پیدا کند
    4- حال به یک رکورد قبل از آن رفته
    5- برای ساخت فقط از دستور insert استفاده کنید نه دستور دیگری
    6- بعد از ساخت رکورد فوق قفل فایل را باز کنید ( در شبکه )
    حال مشکلات این برنامه
    1- احتیاج به برنامه نویسی خیلی زیادی دارد
    2- دستور insert دستور خطر ناکی است چرا که در جدولهای بزرگ زمان زیادی را جهت ساخت آن میبرد چرا که میبایست تمامی رکوردهای بعدی ( یعنی بعداز رکورد فوق ) را یک رکورد به پایین تر انتقال دهد و این باعث خطر میشود که در این حال امکان اتفاقات زیادی را پیش می آورد ( ازجمله قطع برق .....) درهنگام ساخت این رکورد


    اگر سوالی پیش آمد پیام بدهید پاسخ خواهم داد

    دلفی کاران را دوست دارم [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

    [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]



  5. #5
    کاربر سایت 0armin0 آواتار ها
    تاریخ عضویت
    December 2013
    سن
    10
    نوشته ها
    2
    تشکر ها
    0
    تشکر شده 0 بار در 0 ارسال.
    از چه دیتابیسی استفاده میکنید؟

  6. #6
    کاربر سایت ali3d آواتار ها
    تاریخ عضویت
    January 2014
    سن
    10
    نوشته ها
    96
    تشکر ها
    0
    تشکر شده 2 بار در 2 ارسال.
    بنده از Access بعنوان دیتابیس استفاده میکنم و چنین مشکلی دارم!!!!
    خوشحال میشم راهنماییم کنید.

  7. #7
    مدیر انجمن meyti آواتار ها
    تاریخ عضویت
    August 2013
    نوشته ها
    143
    تشکر ها
    134
    تشکر شده 78 بار در 55 ارسال.

    نقل قول از ali3d
    بنده از Access بعنوان دیتابیس استفاده میکنم و چنین مشکلی دارم!!!!
    خوشحال میشم راهنماییم کنید.








    زمان طراحی جدول نوع داده را autonumber قرار دهید



  8. #8
    کاربر سایت ali3d آواتار ها
    تاریخ عضویت
    January 2014
    سن
    10
    نوشته ها
    96
    تشکر ها
    0
    تشکر شده 2 بار در 2 ارسال.
    نقل قول از meyti

    نقل قول از ali3d
    بنده از Access بعنوان دیتابیس استفاده میکنم و چنین مشکلی دارم!!!!
    خوشحال میشم راهنماییم کنید.








    زمان طراحی جدول نوع داده را autonumber قرار دهید






    دوست عزیز بنده باید بگم که* به فرض من وقتی رکورد شماره 10 را در دیتابیس ذخیر کردم و بعد که همین رکورد 10 را حذف کردم و اگه مجدد بخوام رکوردی را اضافه کنم در ستون ردیف شماره 11 ثبت میشه و یا شماره دیگه!!!
    در حالی که باید عدد 10 ثبت بشه؟!!
    با تشکر از پاسخگویی شما

  9. #9
    مدیر انجمن meyti آواتار ها
    تاریخ عضویت
    August 2013
    نوشته ها
    143
    تشکر ها
    134
    تشکر شده 78 بار در 55 ارسال.
    نقل قول از ali3d
    دوست عزیز بنده باید بگم که* به فرض من وقتی رکورد شماره 10 را در دیتابیس ذخیر کردم و بعد که همین رکورد 10 را حذف کردم و اگه مجدد بخوام رکوردی را اضافه کنم در ستون ردیف شماره 11 ثبت میشه و یا شماره دیگه!!!
    در حالی که باید عدد 10 ثبت بشه؟!!
    با تشکر از پاسخگویی شما





    دقیقا همین جوری میشه که عدد بعدی (11) اضافه میشه . اگه بخواین اینجوری نشه باید برید آخرین رکورد و عدد رو یکی بهش اضافه کنید ! و نوع داده را در اکسس number عدد انتخاب کنید



    کد:

    کد:
    var t:integer;
    .
    .
    
    table1.last;
    t:=table1["id"]+1
    table1.append;
    tabl1["id"]:=t;
    .
    .
    .
    table1.post;


  10. #10
    کاربر سایت ali3d آواتار ها
    تاریخ عضویت
    January 2014
    سن
    10
    نوشته ها
    96
    تشکر ها
    0
    تشکر شده 2 بار در 2 ارسال.
    دوست عزیز من طبق گفته های شما پیش میرم اما باز هم همونطور میشه!!!
    *لطفا به این ویدیو نگاه کنید.
    [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
    در ضمن از کدهای بالا استفاده کردم ولی ارور داد.
    موفق و پیروز باشید.

  11. #11
    مدیر انجمن meyti آواتار ها
    تاریخ عضویت
    August 2013
    نوشته ها
    143
    تشکر ها
    134
    تشکر شده 78 بار در 55 ارسال.
    عرض کردم که باید در اکسس نوع داده را از* autonumber را تغییر بدید به number* !!!
    و خودتان عدد بسازید !
    برای یوزر تعریف کردن نیازی به اتونامبر ندارید ! خودتان هم یوزر و هم پسورد را بدهید .
    اگه پروژه خود را آپلود میکردید کم حجم تر و راحتتر بود ! . همچنین ویرایش کردن آن .

    اگه برسم یه مثال تهیه میکنم برات .

  12. #12
    کاربر سایت ali3d آواتار ها
    تاریخ عضویت
    January 2014
    سن
    10
    نوشته ها
    96
    تشکر ها
    0
    تشکر شده 2 بار در 2 ارسال.
    ابتدا تشکر میکنم از زحمتاتون و سپس باید بگم که آیا امکان نداره اتو نامبر را طوری تنظیم کرد که عدد تکراری در برنامه تولید نکنه؟

  13. #13
    مدیر انجمن meyti آواتار ها
    تاریخ عضویت
    August 2013
    نوشته ها
    143
    تشکر ها
    134
    تشکر شده 78 بار در 55 ارسال.
    عدد تکراری تولید نمیشه ! فقط وقتی رکورد آخر پاک بشه عدد بعدی تولید میشه نه عدد آخرین رکورد .
    از این مثال استفاده کن سوالی داشتی در خدمتم

    [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  14. #14
    کاربر سایت ali3d آواتار ها
    تاریخ عضویت
    January 2014
    سن
    10
    نوشته ها
    96
    تشکر ها
    0
    تشکر شده 2 بار در 2 ارسال.
    ببخشید شما از اینترا وب استفاده کردید؟

  15. #15
    مدیر انجمن meyti آواتار ها
    تاریخ عضویت
    August 2013
    نوشته ها
    143
    تشکر ها
    134
    تشکر شده 78 بار در 55 ارسال.
    خیر

  16. #16
    مدیر انجمن b_e_shamlu آواتار ها
    تاریخ عضویت
    July 2013
    محل سکونت
    کرج
    سن
    56
    نوشته ها
    123
    تشکر ها
    149
    تشکر شده 94 بار در 46 ارسال.
    دوست عزیز همان طور که دیگر عزیزان فرمودند
    1- اتوماتیک منظور اینکه خود سیستم عدد را انتخاب میکنه و احتمال تکراری بودن آن نیست
    2- هنگامی که عدد را تولید میکنه به هیچ وجهی تکرار نیست
    3- اگر شما یک ردیف ( رکورد ) را پاک کنید سیستم به پاک کردن شما هیچ توجهی نمی کنه و خودش طبق آخری رکوردی را که ایجاد کرده و شمار دهید نموده شماره بعدی را میدهد
    4- به شما اجازه اصلاح عدد را هم نمی دهید تا عدد تکراری وارد کنید

    به امید موفقیت
    دلفی کاران را دوست دارم [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

    [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]



علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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