نمایش نتایج 1 تا 3 از 3

نام تاپیک: ثبت LogFile

  1. #1
    محروم شده
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Never Land
    پست
    423

    ثبت LogFile

    با سلام خدمت دوستان

    تو یکی از برنامه هامون که امکان ثبت LogFile را به برنامه دادیم به مشکلی بر خوردیم:
    وقتی کاربری عملی رو بر روی جدولی انجام میده عمل اون کاربر رو (افزودن - ویرایش - حذف - و ...) در جدول LogFile خودمون ثبت می کنیم حالا من دنبال راهی می گردم که با نوشتن یک SP و یا Function در SQLServer بتونم به هر جدولی که (البته جدول رو من می خوام تعیین کنم) رکوردی اضافه شد ، SQLServer خود به خود به وسیله اون SP یا Function نوشته شده یک رکورد به جدول LogFile اضافه کنه آیا همچین امکانی در SQLServer وجود داره یا من باید برای هر جدول از تریگر استفاده کنم ؟ یا برو تو SP هام و اون تابع نوشته شده رو صدا بزنم (خیلی وقت گیره)

  2. #2
    در SQL Server 2005 این کار راهی جز Trigger که باید برای هر جدول نوشته بشه نداره. در SQL Server 2008 قابلیتی به اسم Change Data Capture وجود داره که نیازی به Trigger نیست و هر جدولی رو بخواین براحتی تحت Capture قرار میدین. اما در زمان نوشتن این پست، فکر کنم یک سال باید صبر کنین تا CDC بدستتون برسه! پس فعلا جز به Trigger به چیز دیگه ای فکر نکنین :)

  3. #3
    دوست عزیز, اگر با SMO و یکی از زبانهای .Net Frameworkآشنایی دارید انجام اینکار خیلی مشکل نیست. کافیه یک برنامه بنویسید مثل SQL Profiler و یک Profiler Template درست کنید از اون جدولهایی که می خواهید. بعد کد زیر رو اجرا کنید :


    using Microsoft.SqlServer.Management.Smo;
    using Microsoft.SqlServer.Management.Trace;
    using Microsoft.SqlServer.Management.Common;


    private void button1_Click(object sender, EventArgs e)
    {
    try
    {

    System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(
    delegate(object arg)
    {
    SqlConnectionInfo ci = new SqlConnectionInfo("localhost");
    ci.UseIntegratedSecurity = true;

    TraceServer reader = new TraceServer();

    reader.InitializeAsReader(ci, @"C:\Program Files\Microsoft SQL Server\90\Tools\Profiler\Templates\Microsoft SQL Server\90\TSQL.tdf");

    while (reader.Read())
    {
    string result = string.Empty;

    for (int i = 0; i < reader.FieldCount; i++)
    {
    object value = reader.GetValue(i);

    if (value != null)
    {
    result += "---" + value.ToString();
    }
    }

    listBox1.Invoke(new MethodInvoker(
    delegate()
    {
    listBox1.Items.Insert(0, result);
    }));


    }

    reader.Close();
    }));
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }

    }



    بدین طریق میتونید هر دستوری که روی اون جدولها انجام میشه رو ببینید و بر اساس اون log فایل رو درست کنید.

    بعد میتونید از این برنامه یک ویندوز سرویس درست کنید که همیشه در حال اجرا باشه و log فایل رو پر کنه.

تاپیک های مشابه

  1. ایجاد logfile در ریشه log هاست
    نوشته شده توسط marzban در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: پنج شنبه 24 خرداد 1386, 19:56 عصر
  2. پاک کردن LogFile ها
    نوشته شده توسط sayancard در بخش SQL Server
    پاسخ: 3
    آخرین پست: جمعه 07 مهر 1385, 13:37 عصر
  3. پاک کردن LogFile های مربوط به کاربران
    نوشته شده توسط sm در بخش شبکه و Networking‌
    پاسخ: 3
    آخرین پست: یک شنبه 02 مهر 1385, 07:17 صبح
  4. طریقه ساختن logfile یا فایل ثبت عملکرد کاربران...
    نوشته شده توسط pantea_l62 در بخش VB.NET
    پاسخ: 8
    آخرین پست: یک شنبه 09 بهمن 1384, 10:19 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •