View Full Version : سوال: ثبت اعمال انجام شده در سایت
haamidd
یک شنبه 05 مرداد 1393, 12:52 عصر
با عرض سلام و خسته نباشید خدمت اساتید محترم.
ببخشید اگه من بخوام تمام کارهایی که در سایت انجام میشه رو در یک فایل ذخیره کنم باید چیکار کنم؟
مثل:
ورود و خروج کاربران و نویسندگان و مدیریت + زمان و تاریخ
اعمالی که نویسندگان و مدیران انجام دادن + زمان و تاریخ
و خلاصه تمامی کارها...
ممنون میشم که راهنماییم کنید : )
Ali.hitter
یک شنبه 05 مرداد 1393, 13:39 عصر
سلام
یه جدول تو بانک ایجاد کن و هر عملی که انجام میدی یه سطر بهش اضافه کن که چه کاری بوده و زمانشو ...
s.karim
یک شنبه 05 مرداد 1393, 14:14 عصر
در تکمیل حرف دوستمون
بر روی تمام جداولی که می خوای اطلاعاتشون ذخیره بشه تریگر بنویس
و هر کدام رو در جدول مخصوص به خودشون ذخیره کن
haamidd
یک شنبه 05 مرداد 1393, 21:44 عصر
یه راهکاری نیست که مثلا خودش اتوماتیک هر کاری که خواست بشه ثبت کنه؟!!
اخه اونجوری باید من یه تیکه کد رو تو 100 جا کپی کنم!
s.karim
دوشنبه 06 مرداد 1393, 09:08 صبح
من برای اینکار یک Generator نوشتم که کار سختی هم نیست
هر جدولی رو که روش کلیک میکنم یه جدول Log براش میسازه و سه تریگر Insert, Update, Delete رو هم برای اون جدول میسازه
اگه یه بار براش یه برنامه کوچیک بنویسی
دیگه نمی خواد هر بار کلی کد تکراری بنویسی
haamidd
دوشنبه 06 مرداد 1393, 10:26 صبح
من برای اینکار یک Generator نوشتم که کار سختی هم نیست
هر جدولی رو که روش کلیک میکنم یه جدول Log براش میسازه و سه تریگر Insert, Update, Delete رو هم برای اون جدول میسازه
اگه یه بار براش یه برنامه کوچیک بنویسی
دیگه نمی خواد هر بار کلی کد تکراری بنویسی
ببخشید من مبتدی هستم میشه شما اون نمونه کدتو به منم بدید؟ (لطفا) ؟؟
haamidd
جمعه 10 مرداد 1393, 03:31 صبح
???????????
alighorbanip
جمعه 10 مرداد 1393, 10:00 صبح
اگر نمونه کدتونو بزارید ممنون میشیم
haamidd
دوشنبه 13 مرداد 1393, 10:13 صبح
create trigger t1
on dbo.post
for insert
as
begin
--write code
end
go
s.karim
دوشنبه 13 مرداد 1393, 12:44 عصر
CREATE TRIGGER [dbo].[MyTable_AfterInsert]
ON [dbo].[MyTable]
AFTER INSERT
AS
BEGIN
Insert into MyTable_Log
(
Id,
Title,
Log_Flag,
Log_Date,
Log_User
)
select
Id,
Title,
'Insert',
getdate(),
system_user
from
Inserted
END
s.karim
دوشنبه 13 مرداد 1393, 12:49 عصر
private void GenerateLogTableTrigger(string tableName, DataRow[] rows)
{
string param1 = LogTable_Generator.CreateTriggerParam1(tableName, rows);
string param2 = LogTable_Generator.CreateTriggerParam2(tableName, rows);
txtLogTrigger.Text = string.Format(Resources.Log_Trigger_Drop, tableName + "_AfterInsert");
txtLogTrigger.Text += string.Format(Resources.Log_Trigger_Insert, tableName, param1, param2);
txtLogTrigger.Text += "---------------------------------------------------------------------------------\n\n";
txtLogTrigger.Text += string.Format(Resources.Log_Trigger_Drop, tableName + "_AfterUpdate");
txtLogTrigger.Text += string.Format(Resources.Log_Trigger_Update, tableName, param1, param2);
txtLogTrigger.Text += "---------------------------------------------------------------------------------\n\n";
txtLogTrigger.Text += string.Format(Resources.Log_Trigger_Drop, tableName + "_AfterDelete");
txtLogTrigger.Text += string.Format(Resources.Log_Trigger_Delete, tableName, param1, param2);
}
s.karim
دوشنبه 13 مرداد 1393, 12:52 عصر
این هم برای Resource ها:
121969
s.karim
دوشنبه 13 مرداد 1393, 12:54 عصر
اینم برای پارامترهای متد:
public static string CreateTriggerParam1(string tableName, DataRow[] rows)
{
string code = string.Empty;
foreach (DataRow row in rows)
{
if (int.Parse(row["IsIdentity"].ToString()) == 0 || int.Parse(row["IsIndex"].ToString()) == 0)
{
code += "\t\t[" + row["COLUMN_NAME"].ToString() + "],\n";
}
}
code = code.TrimEnd('\n');
return code;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.