PDA

View Full Version : چگونگی ثبت ورود و خروج کاربر



امیر تورانی
سه شنبه 22 آذر 1384, 15:47 عصر
سلام
من یک تیبل دارم که ورود و خروج کاربر را در آن برای هر بار ورود یا خروج ذخیره میکنم حال موقعی که کاربر وارد میشه من username و تاریخ و ساعت خروج رو یک رکورد add میکنم و ذخیره میکنم حالا نکته سر ثبت ساعت خروج هست که نمی دونم با چه روش و commandi در همون رکورد ثبت شده در بدو ورود ذخیره کنم
ممنون میشم من را راهنمایی کنید

sh_mohsen taki
چهارشنبه 23 آذر 1384, 10:43 صبح
با سلام
مثل برنامه های عادی یدونه کلید signout براش بذار و اونو ثبت کن حالا اگه signoutنکرد یعنی هنوز تو برنامست پس وقتی application داره بسته میشه چک کن آیا طرف خارج شده یا نه اگه نشده باز خارجش کن و ثبت کن

امیر تورانی
چهارشنبه 23 آذر 1384, 12:45 عصر
با تشکر از sh-mohsen taki : یا من منظور شما رو متوجه نمیشم یا شما متوجه نشدید من چی میخواهم ، بحث چگونگی ذخیره در همان رکورد که اطلاعات ورود به سیستم ذخیره شده است !

مطهر
چهارشنبه 23 آذر 1384, 13:26 عصر
مطمئناً در بدو وردود ساعت خروج نداری پس ساعت خروج را ذخیره نکن
موقعی که رکورد جدید را به بانک اضافه می کنی ID رکورد را یه جایی ذخیره کن موقع خروج هم رکورد را Update کن با IDای که ذخیره کردی
یه راه بهتر
چون رکوری که موقع ورود ذخیره کردی آخرین رکورد می باشد موقع خروج هم آخرین رکورد را Updateکن

امیر تورانی
چهارشنبه 23 آذر 1384, 14:33 عصر
مطهر جان از پاسخت ممنون
در روش اول ذخیره کردن ID و update کردن آن ، باید توجه داشت که یک کاربر چندین بار وارد و خارج میشود و در بانک تعداد زیادی رکورد با آن ID هست فکر کنم این روش جواب نده
در روش دوم چون در شبکه کار میکنیم کاربر دیگری که وارد میشود آن کاربر رکورد آخر را در اختیار میگیرد این هم فکر کنم جواب نده
ولی به نظر شما از طریق ذخیره شماره رکورد میشه ؟ البته روش رو نمی دونم اگر کسی میدونه با مثال بگه ممنون میشم

bidad
چهارشنبه 23 آذر 1384, 15:29 عصر
آقای تورانی درسته که در بانک تعداد زیادی رکورد با ای دی همون کاربر هست اما
همون رکورد ها هم منحصر بفردن
مگه جدول شما خودش primary key نداره؟؟

اما اگر هم نداره باز راه حل هست
شما با آخرین ساعت و تاریخی که کابر وارد شده کار دارید دیگه؟؟
خب یه command تعریف کنید که رکوردی که مربوط به کاربر تونه برگردونه
سلکتش هم بر مبنای جدیدترین تاریخ باشه
میتونید از مقایسه رشته ها استفاده کنید max یا min یه فیلد رو بگیرید(ضمنا با دیتا ریدر کار کنید)
و بعدم برید به همون رکورد و بقیه اطلاعاتتون رو بنویسید
موفق باشید

sh_mohsen taki
چهارشنبه 23 آذر 1384, 17:18 عصر
با سلام
ببین این الگوریتم به دردت میخوره یا نه
دستورات sql رو با command ازشون جواب بگیر
select username,password from t_user where username=txtuser and password=txtpass
execute and fill
if ds.tables("t_user").rows(0).item("username")=txtuser and ds.tables("t_user").rows(0).item("password")=txtpass then
select date_enter from temp where username=txtuser
execute and fill
if ds.tables("temp").rows.count<>0 then
update temp set date_enter=date.now
execute
else
insert into temp values(txtuser,date.now)
end if

مطهر
چهارشنبه 23 آذر 1384, 17:51 عصر
منظورم ID رکورد است نه کاربر

مطهر
چهارشنبه 23 آذر 1384, 17:56 عصر
آقای تورانی درسته که در بانک تعداد زیادی رکورد با ای دی همون کاربر هست اما
همون رکورد ها هم منحصر بفردن
مگه جدول شما خودش primary key نداره؟؟
گرفتی من چی میگیم

در روش دوم چون در شبکه کار میکنیم کاربر دیگری که وارد میشود آن کاربر رکورد آخر را در اختیار میگیرد این هم فکر کنم جواب نده
خداییش اینو حالا گفتی

امیر تورانی
چهارشنبه 23 آذر 1384, 18:04 عصر
مطهر جان
بعد از اینکه یک رکورد رو update کردیم چطوری id رکورد رو بدست بیاریم و ذخیره کنیم میشه توضیح بدین ، البته بگم که تیبل من primary key نداره
ممنون

روح اله معینی زاده
چهارشنبه 23 آذر 1384, 20:12 عصر
سلام به همه‌ی دوستان

همون روش ID بهترین روش می تونه باشه !!!

منظور دستمون از ID یک عدد نیست که مربوط به شناسه‌ی فرد باشه، منظور ایشان یک فیلد افزایش خودکار یا AutoIncrement می باشد که از عدد 1 شروع شده و به ازای هر رکوردی که در جدول اضافه می شه، آن عدد هم افزایش یافته و بنابراین هیچ‌گاه تکراری نخواهد شد.

بهتر این بود که دوستمون به جای کلمه ID از کلمه RecID یا RecordID استفاده می کرد تا دوستان آن را اشتباه نمی گرفتند.

خب اگر تا کنون اون رو به جدول اضافه نکردی الان این کار رو انجام بده و بعد، از اون به عنوان شرط در دستور به روز رسانی استفاده کن تا به مشکلی بر نخوری.

(به روز رسانی کن جدول x برای مقدار y برابر z وقتی فیلد RecID برابر a باشد)
یا
Update x Set y=z Where recid=a

با احترام- خدانگهدار

مطهر
چهارشنبه 23 آذر 1384, 23:47 عصر
یه فیلد اضافه کن به دیتابیس به نام REC_ID البته Primary Key هم باشه AutoIncrement هم.....
حتماً موقع نوشتن در دیتابیس بزرگترین عدد است؟نقیضش را ثابت کن؟؟)
حالا می خواد هر کاربری از هر جا اینو بنویسه
از اون REC_ID استفاده کن برای Update های بعدی(منظورم از Update هم نوشتن ساعت خروج)

saghari
شنبه 26 آذر 1384, 18:00 عصر
با سلام
به نظرم یک متغیر به سمت client برنامت اضافه کن و وقتی کاربر به سیستم وارد شد کد رکوردی رو که براش در بانک ایجاد کردی به اون بده.