0

Ich habe eine Windows Mobile 6.0-Anwendung mit SQL Server CE 3.5 auf dem Gerät. Das Programm erhält die neuesten Daten vom Herausgeber - SQL Server 2008. Die Replikation funktioniert einwandfrei, aber ich möchte dem Benutzer anzeigen, wann es das letzte Mal vom Server repliziert wurde.Holen Sie sich die letzte Replikation Datum/Uhrzeit von SQL Server CE

Weiß jemand, wo ich die SQL abrufen kann, die ich auf dem Gerät ausführen kann, um diese Informationen von SQL Server CE zu erhalten?

Alle Hilfe sehr geschätzt.

Mike

Antwort

1
/// <summary> 
    /// Get the local Datetime for last succesful synchronization 
    /// If no Synchronization has happened, will return DateTime.MinValue 
    /// </summary> 
    /// <param name="connection">An open connection to the local database</param> 
    /// <returns>The date and time for the last succesful sync</returns> 
    public DateTime GetLastSuccessfulSyncTime(SqlCeConnection connection) 
    { 
     if (!System.IO.File.Exists(connection.Database)) 
      return DateTime.MinValue; 

     if (connection.State != System.Data.ConnectionState.Open) 
     { 
      connection.Open(); 
     } 

     var props = GetPropertiesFromSettings(); 

     using (SqlCeCommand cmd = connection.CreateCommand()) 
     { 
      cmd.Connection = connection; 

      cmd.CommandText = "SELECT table_name FROM information_schema.tables WHERE TABLE_NAME = @table"; 
      cmd.Parameters.Add("@table", SqlDbType.NVarChar, 4000); 
      cmd.Parameters["@table"].Value = "__sysMergeSubscriptions"; 
      object obj = cmd.ExecuteScalar(); 

      if (obj == null) 
       return DateTime.MinValue; 
      cmd.Parameters.Clear(); 

      cmd.CommandText = "SELECT LastSuccessfulSync FROM __sysMergeSubscriptions " + 
       "WHERE [email protected] AND [email protected] AND [email protected]"; 

      cmd.Parameters.Add("@publisher", SqlDbType.NVarChar, 4000); 
      cmd.Parameters["@publisher"].Value = props.Publisher; 

      cmd.Parameters.Add("@database", SqlDbType.NVarChar, 4000); 
      cmd.Parameters["@database"].Value = props.PublisherDatabase; 

      cmd.Parameters.Add("@publication", SqlDbType.NVarChar, 4000); 
      cmd.Parameters["@publication"].Value = props.Publication; 

      obj = cmd.ExecuteScalar(); 
      if (obj == null) 
       return DateTime.MinValue; 
      else 
       return ((DateTime)obj); 
     } 
    } 
+0

Perfect! Danke für deine Hilfe. – hydev

Verwandte Themen