private static void Update(MSMO.LinkedServer linkedServer, SQLInformation.Data.ApplicationDataSet.LinkedServersRow dataRow) { try { linkedServer.UpdateDataSet(dataRow); UpdateDatabaseWithSnapShot(dataRow, ""); } catch (Exception ex) { VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 6); UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256)); } }
private static SQLInformation.Data.ApplicationDataSet.LinkedServersRow Add(Guid instanceID, MSMO.LinkedServer linkedServer, string instanceName) { SQLInformation.Data.ApplicationDataSet.LinkedServersRow dataRow = null; try { dataRow = Common.ApplicationDataSet.LinkedServers.NewLinkedServersRow(); dataRow.ID = Guid.NewGuid(); dataRow.Name_LinkedServer = linkedServer.Name; dataRow.Instance_ID = instanceID; dataRow.Name_Instance = instanceName; dataRow.Catalog = linkedServer.Catalog; dataRow.DataAccess = linkedServer.DataAccess; dataRow.DataSource = linkedServer.DataSource; dataRow.DateLastModified = linkedServer.DateLastModified; dataRow.ID_LinkedServer = linkedServer.ID; dataRow.IsPromotionofDistributedTransactionsForRPCEnabled = linkedServer.IsPromotionofDistributedTransactionsForRPCEnabled; dataRow.Location = linkedServer.Location; dataRow.ProductName = linkedServer.ProductName; dataRow.ProviderName = linkedServer.ProviderName; dataRow.ProviderString = linkedServer.ProviderString; dataRow.Publisher = linkedServer.Publisher; dataRow.SnapShotDate = DateTime.Now; dataRow.SnapShotError = ""; Common.ApplicationDataSet.LinkedServers.AddLinkedServersRow(dataRow); Common.ApplicationDataSet.LinkedServersTA.Update(Common.ApplicationDataSet.LinkedServers); } catch (Exception ex) { VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5); // TODO(crhodes): // Wrap anything above that throws an exception that we want to ignore, // e.g. property not available because of SQL Edition. UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256)); } return(dataRow); }
private static SQLInformation.Data.ApplicationDataSet.LinkedServersRow GetInfoFromSMO(Guid instanceID, MSMO.LinkedServer linkedServer, string instanceName) { #if TRACE long startTicks = VNC.AppLog.Trace2("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2); #endif SQLInformation.Data.ApplicationDataSet.LinkedServersRow dataRow = null; try { var dbs = from tb in Common.ApplicationDataSet.LinkedServers where tb.Instance_ID == instanceID select tb; var dbs2 = from db2 in dbs where db2.Name_LinkedServer == linkedServer.Name select db2; if (dbs2.Count() > 0) { dataRow = dbs2.First(); Update(linkedServer, dataRow); } else { dataRow = Add(instanceID, linkedServer, instanceName); } } catch (Exception ex) { VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3); } #if TRACE VNC.AppLog.Trace2("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 4, startTicks); #endif return(dataRow); }