sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik mijn programma op de hoogte stellen wanneer de database is bijgewerkt?

Polling-database is geen erg elegante oplossing.

SqlDependency van ADO.NET zal in uw geval nuttig zijn. Het maakt geen gebruik van polling maar een meldingsmechanisme. De meldingen worden geleverd door Service Broker in uw database, dus u moet deze service inschakelen in uw database. De OnChange gebeurtenis wordt verhoogd wanneer gespecificeerde tabel verandert (update, verwijderen, invoegen ...)

Hier is een voorbeeld van het gebruik van SqlDependency:

void Initialization()
{
    // Create a dependency connection.
    SqlDependency.Start(connectionString, queueName);
}

void SomeMethod()
{
    // Assume connection is an open SqlConnection.

    // Create a new SqlCommand object.
    using (SqlCommand command=new SqlCommand(
        "SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", 
        connection))
    {

        // Create a dependency and associate it with the SqlCommand.
        SqlDependency dependency=new SqlDependency(command);
        // Maintain the refence in a class member.

        // Subscribe to the SqlDependency event.
        dependency.OnChange+=new
           OnChangeEventHandler(OnDependencyChange);

        // Execute the command.
        using (SqlDataReader reader = command.ExecuteReader())
        {
            // Process the DataReader.
        }
    }
}

// Handler method
void OnDependencyChange(object sender, 
   SqlNotificationEventArgs e )
{
  // Handle the event (for example, invalidate this cache entry).
}

void Termination()
{
    // Release the dependency.
    SqlDependency.Stop(connectionString, queueName);
}

van http://msdn.microsoft.com/en-us/library/ 62xk7953.aspx

Hier leest u hoe u Service Broker inschakelt (houd er rekening mee dat u exclusiviteit op de database hebt om dat te doen - het beste kunt u dit doen na het opnieuw opstarten van de sql-server):http://blogs.sftsrc.com/stuart/archive/2007/06/13/42.aspx (Verbroken link)

Mogelijke alternatieve link:http://technet. microsoft.com/en-us/library/ms166086(v=sql.105).aspx



  1. Vervolgkeuzelijst weergeven in HTML met PHP

  2. Een postgresql-volume koppelen met Aws EBS in Kubernete

  3. ODP.NET UPDATE... TERUGKEER IN... meerdere rijen, parametertype

  4. Problemen met het gebruik van pg_search met een polymorfe associatie