PDA

View Full Version : اطلاع از اعمال کاربر بر روی بانک



Mohammadi_F
دوشنبه 16 بهمن 1385, 04:20 صبح
چه جوری میشه از کارهایی که کاربر انجام میده بر روی بانک (مثل Edit,Insert,Dlete )اطلاع پیدا کرد .
البته می دونم رویداد های Before , after وجود داره ولی میشه با رویداد های DataSource این کارا رو کرد ؟
یعنی مثلا یک تابع نوشت که کل کارهای کاربر رو اسکن کنه و بر اساس اونا تصمیماتی بگیره؟

vcldeveloper
دوشنبه 16 بهمن 1385, 09:02 صبح
می تونید از رویداد OnUpdateData شی DataSource ایی که به جدول متصل هست، استفاده کنید. این رویداد قبل از اینکه تغییر اعمال شده بر روی رکورد جاری به بانک منتقل بشه، فراخوانی میشه.

Mohammadi_F
سه شنبه 17 بهمن 1385, 04:17 صبح
امتحان می کنم و نتیجه رو بهتون می گم
ممنون

حمیدرضاصادقیان
سه شنبه 17 بهمن 1385, 07:26 صبح
یا میتونی یک پروسیجر بنویسی و وقتی که میخواهی دستور insert یا update یا delete رو اجرا کنی اونو صدا بزنی.

mjdeveloper
یک شنبه 22 بهمن 1385, 05:11 صبح
دوست عزیز باید برای هر جدول از بانک یک تریگر
(trigger)
بنویسی که انواع مختلفی داره و بعد این تریگر به صورت اتوماتیک بعد از اعمالی که توسط کاربر اتفاق میفته اجرا می شه
در Sql server trigger
رو پیدا کن
-------------------------
موفق باشی
مهدی جعفری

mjdeveloper
یک شنبه 22 بهمن 1385, 05:21 صبح
چه جوری میشه از کارهایی که کاربر انجام میده بر روی بانک (مثل Edit,Insert,Dlete )اطلاع پیدا کرد .
البته می دونم رویداد های Before , after وجود داره ولی میشه با رویداد های DataSource این کارا رو کرد ؟
یعنی مثلا یک تابع نوشت که کل کارهای کاربر رو اسکن کنه و بر اساس اونا تصمیماتی بگیره؟

اگر مثال خواستی بگو برات بنویسم

ictboy
دوشنبه 21 اسفند 1385, 11:45 صبح
دوست عزیز سلام
اگه ممکنه در مورد Trigger بیشتر توضیح بدید و یه نمونه کدی را در اینجا قرار بدید ممنون می شم.

mjdeveloper
جمعه 17 فروردین 1386, 02:52 صبح
دوست عزیز سلام
اگه ممکنه در مورد Trigger بیشتر توضیح بدید و یه نمونه کدی را در اینجا قرار بدید ممنون می شم.

شما اگر از اس کیو ال سرور استفاده می کنید می تونید روی جدول راست کلیک کرده و مسیر زیر رو برید
all Task>manage trigger
پنجره که باز شد کدی مانند کد زیر بنویسید مثلا برای بروز رسانی
در ضمن یک جدول هم برای نگهداشتن رد پای کاربر تعریف کنید که نوع کا و کد کاربر و همچنین تاریخ رو نگهداره و یا هر فیلد دیگری که نیاز دارید.

CREATE Trigger check4update on dbo.TableName
For Update

As
declare @user_code int
select @user_Code=user_code from tb_users
where active=1

if ( Update(Field1)or
update(Field2)or
update(Field3)or
Update(Field4)
)
begin
insert into tb_log values(@user_code,'Update',N'نام جدول',...)
end


-------------------------------------------------------


در این کد من اول کاربر جاری رو که وارد سیستم شده رو پیدا می کنم
یعنی کد کاربر جاری رو می گیرم
بعد با توجه به بروز رسانی فیلدهای جدولم
میام و در یک جدول لوگ رد پای کاربر رو نگه می دارم
به جای سه نقطه هم که گذاشتم شما باید بقیه فیلدهایی رو که نیاز دارید رو بنویسد
اگر سوال دیگری هم در این مورد داشتید به
mehdi_jafari_t83@yahoo.com
یه آف بزنید

mjdeveloper
جمعه 17 فروردین 1386, 02:55 صبح
در ضمن تریگر خود بخود بعد از اعمال بروز رسانی بر روی جدول اجرا خواهد شد و نیازی به فراخوانی دستی ندارد
موفق باشید
مهدی جعفری

davoodmz
دوشنبه 03 اردیبهشت 1386, 10:26 صبح
با سلام
دوست من خوب بود
میشه لطفا همین کد بالا را در دلفی بنویسید .
باتشکر

mjdeveloper
دوشنبه 10 اردیبهشت 1386, 01:07 صبح
با سلام
دوست من خوب بود
میشه لطفا همین کد بالا را در دلفی بنویسید .
باتشکر

من منظور شما رو درباره این که این کد رو تو دلفی بنویسم نمی فهمم
تریگر رو باید تو اس کیو ال بنویسید و مزیت اون اینه که اگر یکی بیاد و جداولت رو از توی اس کیو ال سرور تغییر بده باز هم می تونی رد اون رو بگیری

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