PDA

View Full Version : سوال: timestamp در #C



skymvm
دوشنبه 07 تیر 1395, 12:05 عصر
با سلام به همه ی دوستان
کسی می تونه منو راهنمایی کنه تو زبان c شارپ timestamp چی هست؟

mrprestige
دوشنبه 07 تیر 1395, 14:50 عصر
سلام دوست من وقتت بخیر ، این نوع فیلد، یک عدد باینری هستش که هر وقت شما یک رکورد ایجاد کنین، این فیلد به طور اتوماتیک مقدار میگیره. هر وقت این رکورد(هر کدوم از فیلدهایش) Update بشه، مقدار TimeStamp جدید میشه.مایکروسافت تضمین میکنه که هر مقدار TimeStamp برای دیتابیس Unique هست. یعنی حتی اگر چند جدول داشته باشین که همشون از این نوع فیلد دارند، باز مقدار تکراری در دیتابیس روی TimeStamp وجود نخواهد داشت.
اما استفاده از این نوع فیلد:در محیط های Multi User نرم افزار شما میتونه به جای Lock کردن رکورد خوانده شده، از این فیلد استفاده کنه تا همزمانی کاهش پیدا نکنه. مثلا وقتی Query انجام میدین و به Client میبرین، این فیلد رو هم در Select قرار بدین. وقتی کاربر رکورد رو ویرایش کرد و میخواد به سرور منتقل کنه، برنامه شما مقدار TimeStamp که در جدول وجود داره رو مجددا میخونه و با مقداری که در کلاینت هست مقایسه میکنه. اگر یکسان بود، شما با خیال راحت رکورد رو Update میکنین و مطمئن هستید در طول این مدت، کاربر دیگه ای رکورد رو ویرایش نکرده (چون اگر ویرایش کرده بود، مقدار TimeStamp برای رکورد تغییر میکرد). ولی اگر یکی نبود، برنامه به کاربر Alert میده و چند انتخاب براش فراهم میکنه که اگر خواست مجددا رکورد رو از جدول بخونه و با چیزی که خودش ویرایش کرده مقایسه کنه.
این بهترین استراتژی در محیط های چند کاربره هستش که دیگه شما رکورد رو Lock نمیکنین و جلوی کار کاربران دیگه گرفته نمیشه.
ولی اینم بگم البته الان SQL Sever از دستور rowversion بجای Timestamp استفاده میکنه

skymvm
دوشنبه 07 تیر 1395, 19:22 عصر
خیلی ممنون از راهنماییتون بسیار مفید بود متوجه شدم
فقط یه سوال دیگه، می خوام برنامه ای بنویسم از timestamp استفاده کنم، فرض کنین می خوام 4 تا عمل ریاضی رو انجام بدم پشت سر هم و تایم استمپ زمان انجام اخرین عمل رو به من برگردونه. چنین چیزی ممکنه تو c# انجام داد؟اگه بلدید بهم ایمیل میزنید؟هزینشو هم تقدیم می کنم z.rahmani69@gmail.com
با سپاس

mrprestige
دوشنبه 07 تیر 1395, 19:47 عصر
خیلی ممنون از راهنماییتون بسیار مفید بود متوجه شدم
فقط یه سوال دیگه، می خوام برنامه ای بنویسم از timestamp استفاده کنم، فرض کنین می خوام 4 تا عمل ریاضی رو انجام بدم پشت سر هم و تایم استمپ زمان انجام اخرین عمل رو به من برگردونه. چنین چیزی ممکنه تو C#‎‎ انجام داد؟اگه بلدید بهم ایمیل میزنید؟هزینشو هم تقدیم می کنم z.rahmani69@gmail.com
با سپاس
سلام دوست من وقتت بخیر ، در مرحله اول باید بگم که معلومه اصلا مطلب قبلیمو نخوندی و الکی از من تشکر کردی :قهقهه: چون اصلا timestamp برخلاف اسمش وظیفه ش یه چیز دیگه س گفتم Time stamp یه مقدار باینری رو بر میگردونه که برای Lock کردن رکورد هاتون هست و اون چیزی که شما میخواین با یه DateTime حل میشه . نکته بعدی دوست من ، من برای کمک به دوستانی مثل شما و یا هرکسی دیگه ای هزینه ای نمیگیرم .

پیروز موفق باشید

skymvm
سه شنبه 08 تیر 1395, 00:14 صبح
سلام دوست من وقتت بخیر ، در مرحله اول باید بگم که معلومه اصلا مطلب قبلیمو نخوندی و الکی از من تشکر کردی :قهقهه: چون اصلا timestamp برخلاف اسمش وظیفه ش یه چیز دیگه س گفتم Time stamp یه مقدار باینری رو بر میگردونه که برای Lock کردن رکورد هاتون هست و اون چیزی که شما میخواین با یه DateTime حل میشه . نکته بعدی دوست من ، من برای کمک به دوستانی مثل شما و یا هرکسی دیگه ای هزینه ای نمیگیرم .

پیروز موفق باشید

مچکرم
عذر می خوام من اونقدر با عجله خوندم که دقت نکردم
بینهایت ممنون از لطفتون، خوب حاالا چطوری اون برنامه ای رو که گفتم بنویسم؟؟؟؟؟؟:متفکر::متفکر:: تفکر::متفکر:

mrprestige
سه شنبه 08 تیر 1395, 20:00 عصر
اختیار داری دوست من کاری نکردم ، الان به من بگو منظورت مدت زمانی که آخرین محاسبه انجام میشه رو بهت نشون بده یا نه منظورت ساعت رو نشون بده بهت ؟؟