ورود

View Full Version : نحوه ذخیره یوزر دستی به وسیله تریگر



shahinghorbani
چهارشنبه 16 شهریور 1390, 18:28 عصر
ما اگر توی یک برنامه که اینسرت انجام میشه بخایم با تریگر این اد شدن رو توی یه جدول دیگه ذخیره کنیم. برای ذخیره یوزرنیم باید چیکار کرد؟ منظورم یوزرنیم خود اس کیو ال نیست. یوزرنیمی که ما خودمون تو برنامه ساختیمش

Galawij
چهارشنبه 16 شهریور 1390, 19:41 عصر
سلام،
سوال جالبی پرسیدید که به نظر من می تونه جای کار داشته باشه.
چون نمی توانیم به تریگر ها پارامتر ارسال کنیم.من فکر می کنم به این صورت می تونید عمل کنید. یک جدول دیگر برای سوابق فعالیت کاربران نگهداری کنید، تا به محض عملیات درج، به روز رسانی و حذف مشخصات کاربر در این جدول وارد شود، به همراه تاریخ، ساعت و .... . بعد در داخل تریگر از این جدول اطلاعات را بگیرید.

shahinghorbani
چهارشنبه 23 شهریور 1390, 17:00 عصر
خب اگر اون کارو بکنیم که دیگه تریگر چه نیازیه؟ من خیلی اس کیو ال مهارت ندارم, فکر میکردم اصلی ترین کاری که میکنه همینه , یعنی از پس همینم بر نمیاد؟ :بامزه:

Galawij
چهارشنبه 23 شهریور 1390, 22:50 عصر
دوست عزیز،
من که به شما گفتم جای کار داره!
دسترسی به کاربر فعلی و یا کامپیوتری که درحال حاضر به بانک اطلاعاتی متصل شده، کاری نداره! مشکل از اینجاست که شما کاربران خودتان را در جدولی دیگر دارید، و این چه ربطی به کاربران تعریف شده SQL دارد؟
سعی ام را می کنم، ببینم به نتیجه ای می رسه یا نه!

shahinghorbani
جمعه 25 شهریور 1390, 01:21 صبح
اکی ممنون,
من چون زیاد اس کیو ال بلد نیستم میپرسم امکانش نیست که یه تریگر توی یه استور پروسیچر باشه نع؟

یوسف زالی
جمعه 25 شهریور 1390, 01:28 صبح
سلام.
بهترین کار اینه که از طریق SP و با فرستادن پارامتر یوزر به اون این کار رو انجام بدیم.
نیازی هم به تریگر نویسی نداره:



create procedure P1
@F1 int
..
@userserial int
as
.
.
insert into TBL values(@Userserial...)

shahinghorbani
شنبه 26 شهریور 1390, 20:31 عصر
سلام.
بهترین کار اینه که از طریق SP و با فرستادن پارامتر یوزر به اون این کار رو انجام بدیم.
نیازی هم به تریگر نویسی نداره:



create procedure P1
@F1 int
..
@userserial int
as
.
.
insert into TBL values(@Userserial...)


اره خب, مثلا من برای سی شارپ میخاستم, اون طوری باشه که توی همون کد هم میشه انجام داد, من تعجبم از اینکه با تریگر نمیشه همچین کاری کرد !!

حمیدرضاصادقیان
یک شنبه 27 شهریور 1390, 07:59 صبح
سلام.
Trigger فقط داده هایی که زمان درج و اصلاح و حذف ارسال می شوند رو دراختیار داره و شما نمیتونید بهش پارامتر پاس بدید.
اگر موقع Insert نام کاربر مورد نظر رو ارسال میکنید در داخل Trigger میتونید هربلایی سرش بیارید. یا اگر User مربوطه داخل خود SQL Server تعریف شده بازم جای کار داره.درغیر اینصورت Trigger از کجا باید بفهمه چه User اینکارو کرده؟
راههای ارائه شده در بالا راهکارهای مناسبی هستند.