コード例 #1
0
ファイル: Tracer.cs プロジェクト: rcdosado/SMO
        /// <summary>
        /// Configure the trace to run against the local SQL Server.
        /// </summary>
        private static void SQLTraceLiveReader()
        {
            TraceServer traceServerReader;
            SqlConnectionInfo sci;
            string traceConfigFileName;
            string programFilesPath;

            // Setup connection to the SQL Server
            traceServerReader = new TraceServer();

            // Use the local SQL Server
            sci = new SqlConnectionInfo();
            sci.UseIntegratedSecurity = true;

            // Test for SQL Express
            Server srvr = new Server(sci.ServerName);
            if (srvr.Information.Edition != @"Express Edition")
            {
                // Configure the reader
                // Use the Standard profiler configuration
                traceConfigFileName = Properties.Settings.Default.TraceConfigFile;
                programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
                traceServerReader.InitializeAsReader(sci, programFilesPath + traceConfigFileName);

                // Start reading the trace information
                SQLTraceReader(traceServerReader);
            }
            else
            {
                Console.WriteLine("SQL Express is not supported for tracing");
            }
        }
コード例 #2
0
ファイル: SqlTrace.cs プロジェクト: davelondon/dontstayin
		public SqlTrace(string filterHostname, SqlConnection conn)
		{
			this.filterHostname = filterHostname.ToLower();

			ci = new SqlConnectionInfo(conn.DataSource);

			ClearData();
		}
コード例 #3
0
ファイル: TraceSource.cs プロジェクト: jshield/sqlperms
        public TraceSource(SqlConnectionInfo connectionInfo, String filename)
        {
            if (connectionInfo == null)
            {
                throw new ArgumentNullException("connectionInfo");
            }

            this.connectionInfo = connectionInfo;
            this.filename = filename;
        }
コード例 #4
0
        public List <ProfileDetail> Load(IConnectionInfo connection)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection));
        }
コード例 #5
0
ファイル: MessageManager.cs プロジェクト: aco228/MobiChat
        public List <Message> Load(IConnectionInfo connection, Customer customer, MessageType messageType)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, customer, messageType));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, customer, messageType));
        }
コード例 #6
0
        public ProfileGroup Load(IConnectionInfo connection, MobiChat.Data.Instance instance, string name)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, instance, name));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, instance, name));
        }
コード例 #7
0
        private void ReadEventsFromFile()
        {
            try
            {
                SqlConnectionInfo info = new SqlConnectionInfo();
                info.ServerName = "(localdb)\\MSSQLLocalDB";

                string sqlCreateTable = @"
                    IF OBJECT_ID('tempdb.dbo.trace_reader_queue') IS NULL
                    BEGIN
                        CREATE TABLE tempdb.dbo.trace_reader_queue (
                            ts datetime DEFAULT GETDATE(),
                            path nvarchar(4000)
                        )
                    END
                    TRUNCATE TABLE tempdb.dbo.trace_reader_queue;
                    INSERT INTO tempdb.dbo.trace_reader_queue (path) VALUES(@path);
                ";

                using (SqlConnection conn = new SqlConnection())
                {
                    conn.ConnectionString = info.ConnectionString;
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = sqlCreateTable;
                        SqlParameter prm = new SqlParameter()
                        {
                            ParameterName = "@path",
                            DbType        = System.Data.DbType.String,
                            Size          = 4000,
                            Value         = tracePath
                        };
                        cmd.Parameters.Add(prm);
                        cmd.ExecuteNonQuery();
                    }
                }

                reader = new FileTraceEventDataReader(info.ConnectionString, Filter, Events);
                reader.ReadEvents();
                finished = true;
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);

                if (ex.InnerException != null)
                {
                    logger.Error(ex.InnerException.Message);
                }

                Dispose();
            }
        }
コード例 #8
0
ファイル: MessageManager.cs プロジェクト: aco228/MobiChat
        public Message Load(IConnectionInfo connection, Guid messageGuid)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, messageGuid));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, messageGuid));
        }
コード例 #9
0
        public ProfileDetail Load(IConnectionInfo connection, Profile profile, MobiChat.Data.Language language)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, profile, language));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, profile, language));
        }
コード例 #10
0
ファイル: ProfileManager.cs プロジェクト: aco228/MobiChat
        public List <Profile> Load(IConnectionInfo connection, ProfileGroup profileGroup)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, profileGroup));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, profileGroup));
        }
コード例 #11
0
 /// <summary>
 /// Clones the current connection in a new one
 /// </summary>
 public void Clone()
 {
     if (CurrentConnection != null)
     {
         SqlConnectionInfo newItem = CurrentConnection.Clone();
         newItem.ConnectionID += "(Copy)";
         SqlConnections.Add(newItem);
         CurrentConnection = newItem;
         IsInEditMode      = true;
         IsChanged         = true;
     }
 }
コード例 #12
0
        public static void ExecuteStoredProc(StoredProcedure sp, SqlConnectionInfo connInfo)
        {
            try
            {
                string execScript = string.Format("{0}\r\n EXECUTE [{2}].[{3}] {1}",
                                                  UseDataBaseGo(sp.Parent), Environment.NewLine, sp.Schema, sp.Name);


                lock (sp)
                {
                    sp.Refresh();
                    sp.Parameters.Refresh(true);                        // refresh all parameters and their types and default values
                    string parameterList = "";

                    bool hasAtLeastOneNondefaultParameter = false;
                    for (int i = 0; i < sp.Parameters.Count; i++)
                    {
                        bool   hasDefaultValue = false;
                        string parameterValue  = MakeParameter(sp.Parameters[i], out hasDefaultValue);

                        string commaOrComment = string.Empty;

                        // add comma only to second or subsequent line and only if parameter does not have default value
                        if (i > 0 && !hasDefaultValue && hasAtLeastOneNondefaultParameter)
                        {
                            commaOrComment = ",";
                        }

                        if (hasDefaultValue)
                        {
                            commaOrComment = " -- ";
                        }
                        else
                        {
                            hasAtLeastOneNondefaultParameter = true;
                        }

                        parameterList += string.Format("\t\t{0}{1}\r\n", commaOrComment, parameterValue);
                    }

                    if (sp.Parameters.Count > 0)
                    {
                        execScript += parameterList;
                    }
                }

                CreateSQLDocumentWithHeader(execScript, connInfo);
            }
            catch (Exception ex)
            {
                log.Error("ExecuteStoredProc failed.", ex);
            }
        }
コード例 #13
0
        public void OpenTable2(NamedSmoObject tbl, SqlConnectionInfo connection, Server server)
        {
            String fileName = null;

            // step1 - get script to edit table - SelectFromTableOrView(Server server, Urn urn, int topNValue)
            // step2 - create a file

            try
            {
                var t = Type.GetType("Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.OpenTableHelperClass,ObjectExplorer", true, true);
                var miSelectFromTable = t.GetMethod("SelectFromTableOrView", BindingFlags.Static | BindingFlags.Public);

                //signature is: public static string SelectFromTableOrView(Server server, Urn urn, int topNValue)
                String script = (String)miSelectFromTable.Invoke(null, new Object[] { server, tbl.Urn, 200 });
                fileName = CreateFile(script);

                // invoke designer
                var mc = new ManagedConnection();
                mc.Connection = connection;

                if (_editTableMethod == null)
                {
                    foreach (var mi in ServiceCache.ScriptFactory.GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic))
                    {
                        if ((mi.Name == "CreateDesigner") && (mi.GetParameters().Length == 5))
                        {
                            _editTableMethod = mi;
                            break;
                        }
                    }
                }

                if (_editTableMethod != null)
                {
                    _editTableMethod.Invoke(ServiceCache.ScriptFactory, new Object[] { DocumentType.OpenTable, DocumentOptions.ManageConnection, new Urn(tbl.Urn.ToString() + "/Data"), mc, fileName });
                }
                else
                {
                    log.Error("Could not find CreateDesigner method");
                }
            }
            catch (Exception ex)
            {
                log.Error("Failed OpenTable2", ex);
            }
            finally
            {
                if (!String.IsNullOrEmpty(fileName) && File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }
        }
コード例 #14
0
        public static void OpenTable(NamedSmoObject objectToSelect, SqlConnectionInfo connection)
        {
            if (objectToSelect.State == SqlSmoState.Dropped)
            {
                log.Info("trying to open dropped table.");
                return;
            }

            var _manager = new ObjectExplorerManager(HuntingDog.HuntingDogPackage.Instance);

            _manager.OpenTable(objectToSelect, connection);
        }
コード例 #15
0
        private Tuple <SqlConnectionInfo, DataTable, ServerConnection> CreateSqlConnection(ConnectionInfo connInfo, String jobId)
        {
            var sqlConnection    = ConnectionService.OpenSqlConnection(connInfo);
            var serverConnection = new ServerConnection(sqlConnection);
            var server           = new Server(serverConnection);
            var filter           = new JobHistoryFilter();

            filter.JobID = new Guid(jobId);
            var dt          = server.JobServer.EnumJobHistory(filter);
            var sqlConnInfo = new SqlConnectionInfo(serverConnection, SqlServer.Management.Common.ConnectionType.SqlConnection);

            return(new Tuple <SqlConnectionInfo, DataTable, ServerConnection>(sqlConnInfo, dt, serverConnection));
        }
        /// <summary>
        /// Sets the stub of SqlStoreConnectionFactory.GetUserConnection(SqlStoreConnectionInfo connectionInfo)
        /// </summary>
        public override IUserStoreConnection GetUserConnection(SqlConnectionInfo connectionInfo)
        {
            Func <SqlConnectionInfo, IUserStoreConnection> func1 = this.GetUserConnectionString;

            if (func1 != null)
            {
                return(func1(connectionInfo));
            }
            if (this.___callBase)
            {
                return(base.GetUserConnection(connectionInfo));
            }
            return(this.InstanceBehavior.Result <StubSqlStoreConnectionFactory, IUserStoreConnection>(this, "GetUserConnection"));
        }
コード例 #17
0
        public TableAccessor(string defaultDatabase)
        {
            SqlConnectionInfo connectionInfo = Common.Connection.GetActiveConnectionInfo();
            ServerConnection  connection     = new ServerConnection(connectionInfo);

            connection.Connect();
            _server          = new Server(connection);
            _defaultDatabase = defaultDatabase;
            if (!_server.Databases.Contains(_defaultDatabase))
            {
                _defaultDatabase = Common.Connection.GetActiveDatabase(null);
            }
            _dbForeignKeyRules = new Dictionary <string, List <Rule> >();
        }
コード例 #18
0
        public TraceWrapperTraceServer(ConnectionInfo connectionInfo, List<IResultHandler> handlers = null)
            : base(handlers)
        {
            this.connectionInfo = FromConnectionInfo(connectionInfo);

            TraceDefinitionFile.SaveAsTDF("mytrace.tdf");
            traceDefinitionFile = "mytrace.tdf";

            this.State = TraceState.NotInitiated;

            this.backWorker.WorkerReportsProgress = true;
            this.backWorker.WorkerSupportsCancellation = true;
            this.backWorker.ProgressChanged += new ProgressChangedEventHandler(backWorker_ProgressChanged);
            this.backWorker.DoWork += new DoWorkEventHandler(backWorker_DoWork);
        }
コード例 #19
0
        public static void DesignTable(Table tbl, SqlConnectionInfo connInfo)
        {
            if (tbl.State == SqlSmoState.Dropped)
            {
                log.Info("trying to design dropped table.");
                return;
            }

            var mc = new ManagedConnection();

            mc.Connection = connInfo;

            ServiceCache.ScriptFactory.DesignTableOrView(Microsoft.SqlServer.Management.UI.VSIntegration.Editors.DocumentType.Table,
                                                         DocumentOptions.ManageConnection, tbl.Urn.ToString(), mc);
        }
コード例 #20
0
        public override ProjectTaskProperties ProcessTaskCmdlet()
        {
            SqlConnectionInfo targetConnectionInfo = null;
            SqlConnectionInfo sourceConnectionInfo = null;
            SsisMigrationInfo ssisMigrationInfo    = null;

            if (MyInvocation.BoundParameters.ContainsKey(TargetConnection))
            {
                targetConnectionInfo = (SqlConnectionInfo)MyInvocation.BoundParameters[TargetConnection];
                PSCredential cred = (PSCredential)MyInvocation.BoundParameters[TargetCred];
                targetConnectionInfo.UserName = cred.UserName;
                targetConnectionInfo.Password = Decrypt(cred.Password);
            }

            if (MyInvocation.BoundParameters.ContainsKey(SourceConnection))
            {
                sourceConnectionInfo = (SqlConnectionInfo)MyInvocation.BoundParameters[SourceConnection];
                PSCredential cred = (PSCredential)MyInvocation.BoundParameters[SourceCred];
                sourceConnectionInfo.UserName = cred.UserName;
                sourceConnectionInfo.Password = Decrypt(cred.Password);
            }

            if (MyInvocation.BoundParameters.ContainsKey(SsisMigrationInfo))
            {
                ssisMigrationInfo = (SsisMigrationInfo)MyInvocation.BoundParameters[SsisMigrationInfo];
            }
            else
            {
                ssisMigrationInfo = new SsisMigrationInfo
                {
                    SsisStoreType              = SsisStoreType.SsisCatalog,
                    ProjectOverwriteOption     = SsisMigrationOverwriteOption.Ignore,
                    EnvironmentOverwriteOption = SsisMigrationOverwriteOption.Ignore
                };
            }

            var properties = new MigrateSsisTaskProperties
            {
                Input = new MigrateSsisTaskInput
                {
                    TargetConnectionInfo = targetConnectionInfo,
                    SourceConnectionInfo = sourceConnectionInfo,
                    SsisMigrationInfo    = ssisMigrationInfo
                }
            };

            return(properties);
        }
コード例 #21
0
        internal void Run()
        {
            SqlConnectionInfo sci = this.CreateConnectionInfo();
            ServerConnection  sc  = new ServerConnection(sci);
            Server            s   = new Server(sc);
            Database          db  = s.Databases[this.Database];

            this.CleanFolder(this.TableScriptPath);
            this.CleanFolder(this.IndexScriptPath);
            this.CleanFolder(this.ForeignKeyScriptPath);
            if (this.StoredProcedureScriptPath != null)
            {
                this.CleanFolder(this.StoredProcedureScriptPath);
            }
            this.ParseDatabase(db);
        }
コード例 #22
0
        public override ProjectTaskProperties ProcessTaskCmdlet()
        {
            SqlConnectionInfo targetConnectionInfo = null;
            List <MigrateSqlServerSqlMIDatabaseInput> selectedDatabases = null;
            BlobShare backupBlobShare = null;
            FileShare backupFileShare = null;

            if (MyInvocation.BoundParameters.ContainsKey(TargetConnection))
            {
                targetConnectionInfo = (SqlConnectionInfo)MyInvocation.BoundParameters[TargetConnection];
                PSCredential cred = (PSCredential)MyInvocation.BoundParameters[TargetCred];
                targetConnectionInfo.UserName = cred.UserName;
                targetConnectionInfo.Password = Decrypt(cred.Password);
            }

            if (MyInvocation.BoundParameters.ContainsKey(SelectedDatabase))
            {
                selectedDatabases
                    = ((MigrateSqlServerSqlMIDatabaseInput[])MyInvocation.BoundParameters[SelectedDatabase]).ToList();
            }

            if (MyInvocation.BoundParameters.ContainsKey(BackupBlobSasUri))
            {
                backupBlobShare = new BlobShare
                {
                    SasUri = MyInvocation.BoundParameters[BackupBlobSasUri] as string
                };
            }

            if (MyInvocation.BoundParameters.ContainsKey(BackupFileShare))
            {
                backupFileShare = (FileShare)MyInvocation.BoundParameters[BackupFileShare];
            }

            var properties = new ValidateMigrationInputSqlServerSqlMITaskProperties
            {
                Input = new ValidateMigrationInputSqlServerSqlMITaskInput
                {
                    TargetConnectionInfo = targetConnectionInfo,
                    SelectedDatabases    = selectedDatabases,
                    BackupBlobShare      = backupBlobShare,
                    BackupFileShare      = backupFileShare
                }
            };

            return(properties);
        }
コード例 #23
0
        private static UIConnectionInfo CreateFrom(SqlConnectionInfo connInfo)
        {
            var ci = new UIConnectionInfo();

            ci.ServerName      = connInfo.ServerName;
            ci.ServerType      = new Guid("8c91a03d-f9b4-46c0-a305-b5dcc79ff907");
            ci.UserName        = connInfo.UserName;
            ci.Password        = connInfo.Password;
            ci.PersistPassword = true;
            ci.ApplicationName = "Microsoft SQL Server Management Studio - Query";

            ci.AuthenticationType = !connInfo.UseIntegratedSecurity
                                ? 1
                                : 0;

            return(ci);
        }
コード例 #24
0
        private static Tuple <ShardLocation, DbConnection> CreateDbConnectionForLocation(
            ShardLocation shardLocation,
            SqlConnectionInfo connectionInfo)
        {
            string shardConnectionString =
                new SqlConnectionStringBuilder(connectionInfo.ConnectionString)
            {
                DataSource     = shardLocation.DataSource,
                InitialCatalog = shardLocation.Database
            }.ConnectionString;

            SqlConnectionInfo shardConnectionInfo = connectionInfo.CloneWithUpdatedConnectionString(shardConnectionString);

            return(new Tuple <ShardLocation, DbConnection>(
                       shardLocation,
                       shardConnectionInfo.CreateConnection()));
        }
コード例 #25
0
        public void TransactionTest()
        {
            var connection = new SqlConnectionInfo();

            connection.DatabaseName = "TEST";
            connection.ServerName   = "test.opennetcf.com";
            connection.ServerPort   = 1433;
            connection.UserName     = "******";
            connection.Password     = "******";

            var store = new SqlServerDataStore(connection);

            try
            {
                store.AddType <PublishedTenantBuildingState>();
                store.AddType <PublishedTenantApartmentState>();

                var b = new PublishedTenantBuildingState()
                {
                    PublishID     = Guid.NewGuid(),
                    RecordDateUtc = DateTime.Now.ToUniversalTime()
                };
                var a1 = new PublishedTenantApartmentState()
                {
                    PublishID = Guid.NewGuid(),
                    PublishedBuildingStateID = b.PublishID,
                    SpaceTemperature         = 1
                };
                var a2 = new PublishedTenantApartmentState()
                {
                    PublishID = Guid.NewGuid(),
                    PublishedBuildingStateID = b.PublishID,
                    SpaceTemperature         = 2
                };


                store.BeginTransaction();
                store.Insert(b);
                store.Insert(a1);
                store.Insert(a2);
                store.Commit();
            }
            catch (Exception ex)
            {
            }
        }
コード例 #26
0
        /// <summary>
        /// Gets the active window connection.
        /// </summary>
        /// <returns></returns>
        internal SqlConnectionInfo GetActiveWindowConnection()
        {
            SqlConnectionInfo info = null;

            try
            {
                UIConnectionInfo connInfo = null;

                if (ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo != null)
                {
                    connInfo = ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo;
                }

                if (connInfo != null)
                {
                    if (connInfo == currentUiConnection)
                    {
                        return(currentConnection);
                    }
                    else
                    {
                        info = CreateSqlConnectionInfo(connInfo);

                        currentConnection   = info;
                        currentUiConnection = connInfo;
                    }
                }

                if (info == null)
                {
                    var nodes = GetObjectExplorerSelectedNodes();

                    if (nodes.Length > 0)
                    {
                        info = nodes[0].Connection as SqlConnectionInfo;
                    }
                }

                return(info);
            }
            catch (NullReferenceException)
            {
                return(null);
            }
        }
コード例 #27
0
 public bool CanConnectToLocalDB()
 {
     try
     {
         SqlConnectionInfo info = new SqlConnectionInfo();
         info.ServerName            = @"(localdb)\MSSQLLocalDB";
         info.UseIntegratedSecurity = true;
         using (SqlConnection conn = new SqlConnection(info.ConnectionString + ";Connect Timeout=30;"))
         {
             conn.Open();
         }
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
コード例 #28
0
        public ObjectAccessor()
        {
            SqlConnectionInfo connectionInfo = Common.Connection.GetActiveConnectionInfo();

            _serverName = connectionInfo.ServerName;

            ServerConnection connection = new ServerConnection(connectionInfo);

            connection.Connect();

            _server   = new Server(connection);
            _scripter = new Scripter(_server);
            _scripter.Options.IncludeDatabaseContext = true;
            // does not work: _scripter.Options.ScriptBatchTerminator = true;
            _scripter.Options.IncludeDatabaseRoleMemberships = true;
            _scripter.Options.IncludeFullTextCatalogRootPath = true;
            _scripter.Options.IncludeHeaders = true;
        }
コード例 #29
0
        static private void CreateSQLDocument(String sqlText, SqlConnectionInfo connInfo)
        {
            if (!_uiConn.ContainsKey(connInfo.ServerName))
            {
                var aci = ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo;
                _uiConn[connInfo.ServerName] = CreateFrom(connInfo);
            }

            var uiConn = _uiConn[connInfo.ServerName];

            ServiceCache.ScriptFactory.CreateNewBlankScript(Microsoft.SqlServer.Management.UI.VSIntegration.Editors.ScriptType.Sql, uiConn, null);

            // create new document
            EnvDTE.TextDocument doc = (EnvDTE.TextDocument)ServiceCache.ExtensibilityModel.Application.ActiveDocument.Object(null);
            // insert SQL definition to document

            doc.EndPoint.CreateEditPoint().Insert(sqlText);
        }
コード例 #30
0
        /// <summary>
        /// Creates a SqlConnectionInfo object from a UIConnectionInfo object
        /// </summary>
        /// <param name="connectionInfo">The connection info.</param>
        /// <returns></returns>
        public static SqlConnectionInfo CreateSqlConnectionInfo(UIConnectionInfo connectionInfo)
        {
            var sqlConnInfo = new SqlConnectionInfo();

            sqlConnInfo.ServerName = connectionInfo.ServerName;
            sqlConnInfo.UserName   = connectionInfo.UserName;

            if (string.IsNullOrEmpty(connectionInfo.Password))
            {
                sqlConnInfo.UseIntegratedSecurity = true;
            }
            else
            {
                sqlConnInfo.Password = connectionInfo.Password;
            }

            return(sqlConnInfo);
        }
コード例 #31
0
 /// <summary>
 /// Load settings
 /// </summary>
 /// <param name="filePath">File path; pass null to use default settings file path</param>
 /// <returns></returns>
 public virtual DataSettings LoadSettings(string filePath = null, SqlConnectionInfo connectionStringName = null)
 {
     if (String.IsNullOrEmpty(filePath))
     {
         //use webHelper.MapPath instead of HostingEnvironment.MapPath which is not available in unit tests
         filePath = Path.Combine(CommonHelper.MapPath("~/App_Data/"), filename);
     }
     if (File.Exists(filePath))
     {
         string text = File.ReadAllText(filePath);
         return(ParseSettings(text));
     }
     else
     {
         return(LoadFromConfigFile(connectionStringName));
     }
     //return new DataSettings();
 }
コード例 #32
0
        private void OpenTable(HierarchyTreeNode node, SqlConnectionInfo connection)
        {
            var t   = Type.GetType("Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.OpenTableHelperClass,ObjectExplorer", true, true);
            var mi  = t.GetMethod("EditTopNRows", BindingFlags.Static | BindingFlags.Public);
            var ncT = Type.GetType("Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NodeContext,ObjectExplorer", true, true);

            IServiceProvider provider      = node as IServiceProvider;
            INodeInformation containedItem = provider.GetService(typeof(INodeInformation)) as INodeInformation;

            var inst = Activator.CreateInstance(ncT, containedItem);

            if (inst == null)
            {
                throw new Exception("Cannot create type" + ncT.ToString());
            }

            mi.Invoke(null, new Object[] { containedItem, 200 });
        }
コード例 #33
0
        public IProfiler CreateProfiler(string serverName, string userName, string password, string rawConnection)
        {
            SqlConnectionInfo ci;
            if (rawConnection == null)
            {
                ci = new SqlConnectionInfo(serverName);
                ci.UserName = userName;
                ci.Password = password;
                if (userName == string.Empty)
                    ci.UseIntegratedSecurity = true;

                return new Profiler(new SqlConnInfo(ci));
            }
            else
            {
                return new Profiler(new SqlConnInfo(delegate { return new SqlConnection(rawConnection); }));
            }
        }
コード例 #34
0
 /// <summary>
 /// Handle request to get Agent Job history
 /// </summary>
 internal async Task HandleJobHistoryRequest(AgentJobHistoryParams parameters, RequestContext <AgentJobHistoryResult> requestContext)
 {
     await Task.Run(async() =>
     {
         try
         {
             var result = new AgentJobHistoryResult();
             ConnectionInfo connInfo;
             ConnectionServiceInstance.TryFindConnection(
                 parameters.OwnerUri,
                 out connInfo);
             if (connInfo != null)
             {
                 Tuple <SqlConnectionInfo, DataTable, ServerConnection> tuple = CreateSqlConnection(connInfo, parameters.JobId);
                 SqlConnectionInfo sqlConnInfo = tuple.Item1;
                 DataTable dt = tuple.Item2;
                 ServerConnection connection = tuple.Item3;
                 int count = dt.Rows.Count;
                 List <AgentJobHistoryInfo> jobHistories = new List <AgentJobHistoryInfo>();
                 if (count > 0)
                 {
                     var job        = dt.Rows[0];
                     string jobName = Convert.ToString(job[AgentUtilities.UrnJobName], System.Globalization.CultureInfo.InvariantCulture);
                     Guid jobId     = (Guid)job[AgentUtilities.UrnJobId];
                     int runStatus  = Convert.ToInt32(job[AgentUtilities.UrnRunStatus], System.Globalization.CultureInfo.InvariantCulture);
                     var t          = new LogSourceJobHistory(jobName, sqlConnInfo, null, runStatus, jobId, null);
                     var tlog       = t as ILogSource;
                     tlog.Initialize();
                     var logEntries = t.LogEntries;
                     jobHistories   = AgentUtilities.ConvertToAgentJobHistoryInfo(logEntries, job);
                     tlog.CloseReader();
                 }
                 result.Jobs    = jobHistories.ToArray();
                 result.Success = true;
                 connection.Disconnect();
                 await requestContext.SendResult(result);
             }
         }
         catch (Exception e)
         {
             await requestContext.SendError(e);
         }
     });
 }
コード例 #35
0
        /// <summary>
        /// called to create SqlConnectionInfo out of the given CDataContainer object
        /// </summary>
        /// <param name="dc"></param>
        /// <returns></returns>
        public static SqlConnectionInfo GetSqlConnectionInfoFromDataContainer(CDataContainer dc)
        {
            if (dc != null)
            {
                // we may have been given conneciton information by the object explorer. in which case there is no need
                // to build it ourselves.
                SqlConnectionInfo result = dc.ConnectionInfo as SqlConnectionInfo;
                if (result == null)
                {
                    throw new InvalidOperationException();
                }

                return(result);
            }
            else
            {
                return(null);
            }
        }
コード例 #36
0
 protected virtual SqlConnectionInfo FromConnectionInfo(ConnectionInfo info)
 {
     SqlConnectionInfo connectionInfo = new SqlConnectionInfo();
     connectionInfo.ServerName = info.ServerName;
     connectionInfo.UseIntegratedSecurity = info.UseIntegratedSecurity;
     if (!connectionInfo.UseIntegratedSecurity)
     {
         connectionInfo.UserName = info.UserName;
         connectionInfo.Password = info.Password;
     }
     return connectionInfo;
 }
コード例 #37
0
        public void Open()
        {
            SqlConnectionInfo smoConn = new SqlConnectionInfo
                                                {
                                                    UserName = _server.UserName,
                                                    Password = _server.Password,
                                                    UseIntegratedSecurity = _server.UseWindowsAuth,
                                                    ServerName = _server.ServerAddress
                                                };

            _smoConnection = new ServerConnection(smoConn);
            _smoConnection.DatabaseName = _server.DatabaseName;

            _smoConnection.Connect();

            IsOpened = true;
        }
コード例 #38
0
        public Server GetServer(string serverName, string userName, string password)
        {
            var connectionInfo = new SqlConnectionInfo();
            connectionInfo.ServerName = serverName;
            if (string.IsNullOrWhiteSpace(userName))
            {
                // Use Windows authentication.
                connectionInfo.UseIntegratedSecurity = true;
            }
            else
            {
                // Use SQL authentication.
                connectionInfo.UseIntegratedSecurity = false;
                connectionInfo.UserName = userName;
                connectionInfo.Password = password;
            }

            var connection = new ServerConnection(connectionInfo);
            var server = new Server(connection);
            return server;
        }
コード例 #39
0
        public SqlConnectionInfo GetActiveWindowConnectionInfo()
        {
            SqlConnectionInfo info = null;
            try
            {
                UIConnectionInfo uiConnInfo = GetActiveUIConnectionInfo();
                //Dim uiConnInfo As UIConnectionInfo = Nothing
                //If ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo IsNot Nothing Then
                //	uiConnInfo = ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo
                //End If
                if (uiConnInfo != null)
                {
                    if (uiConnInfo == currentUIConnection)
                    {
                        return currentConnection;
                    }
                    else
                    {
                        info = CreateSqlConnectionInfo(uiConnInfo);
                        currentConnection = info;
                        currentUIConnection = uiConnInfo;
                    }
                }

                if (info == null)
                {	//desiti ce se ako GetActiveUIConnectionInfo() vrati nothing
                    INodeInformation[] nodes = GetObjectExplorerSelectedNodes();
                    if (nodes.Length > 0)
                    {
                        info = nodes[0].Connection as SqlConnectionInfo;
                    }
                }
                return info;
            }
            //catch (NullReferenceException e)
            catch (Exception e)
            {
                throw; // rethrows exception
                throw (new ApplicationException("GetActiveWindowConnectionInfo: unable to find connection info", e));
                //return null;
            }
        }
コード例 #40
0
 /// <summary>
 /// Iz UIConnectionInfo builda SqlConnectionInfo kopirajući server, username, password, odabranu bazu.
 /// SqlConnectionInfo zna na temelju toga vratiti connectionstring i mozes ga koristiti za kreiranje sql konekcija.
 /// </summary>
 /// <param name="uiConnInfo"></param>
 /// <returns></returns>
 /// <remarks></remarks>
 private SqlConnectionInfo CreateSqlConnectionInfo(UIConnectionInfo uiConnInfo)
 {
     SqlConnectionInfo sqlConnInfo = new SqlConnectionInfo();
     sqlConnInfo.ServerName = uiConnInfo.ServerName;
     sqlConnInfo.UserName = uiConnInfo.UserName;
     if (string.IsNullOrEmpty(uiConnInfo.Password))
     {
         sqlConnInfo.UseIntegratedSecurity = true;
     }
     else
     {
         sqlConnInfo.Password = uiConnInfo.Password;
     }
     sqlConnInfo.DatabaseName = uiConnInfo.AdvancedOptions["DATABASE"];
     sqlConnInfo.ConnectionTimeout = 3; // default je 15, jedinice su sekunde
     sqlConnInfo.QueryTimeout = 5; // max trajanje upita
     sqlConnInfo.ApplicationName = "XDetails"; // da se vidi u sesijama baze tko se spaja
     return sqlConnInfo;
 }
コード例 #41
0
ファイル: TestHelper.cs プロジェクト: jshield/sqlperms
 public SqlConnectionInfo GetConnection()
 {
     if (null == _connectionInfo)
         _connectionInfo = new SqlConnectionInfo("Data Source=.;Integrated Security=SSPI;");
     return _connectionInfo;
 }
コード例 #42
0
ファイル: SqlTrace.cs プロジェクト: dblock/sncore
 public static TraceServer BeginTrace(SqlConnectionInfo sci)
 {
     TraceServer traceServerReader = new TraceServer();
     traceServerReader.InitializeAsReader(sci, GetTraceTemplateName());
     return traceServerReader;
 }
コード例 #43
0
ファイル: SqlTrace.cs プロジェクト: dblock/sncore
 public static SqlConnectionInfo GetTraceSqlConnectionInfo()
 {
     SqlConnectionInfo sci = new SqlConnectionInfo();
     sci.UseIntegratedSecurity = true;
     return sci;
 }
コード例 #44
0
 public void Setup()
 {
     SqlConnectionInfo ci = new SqlConnectionInfo(@".");
     profiler = new Profiler(new SqlConnInfo(ci));
     profiler.Initialize(TraceOptions.FileRollover, path);
 }
コード例 #45
0
ファイル: Web.PagesTest.cs プロジェクト: dblock/dblog
        public void TestDeep(Cookie cookie, SqlConnectionInfo sci)
        {
            Uri root = new Uri("http://localhost/DBlog/Default.aspx");

            List<Uri> queue = new List<Uri>(2500);
            List<Uri> visited = new List<Uri>(5000);

            PerformanceDataCollection perfdata = (sci == null ? null : new PerformanceDataCollection());

            double totaltime = 0;
            int totalcount = 0;

            queue.Add(root);

            Dictionary<Uri, Uri> references = new Dictionary<Uri, Uri>();
            references.Add(root, new Uri("http://localhost/DBlog/"));

            while (queue.Count > 0)
            {
                Uri topofqueue = queue[0];
                List<HtmlUri> links;
                double ts = 0;

                PerformanceData perf = (perfdata != null ? new PerformanceData(topofqueue.ToString()) : null);
                try
                {
                    TraceServer traceServerReader = (sci == null ? null : SqlTrace.BeginTrace(sci));
                    TestPage(references[topofqueue], topofqueue, cookie, out links, out ts);
                    if (perfdata != null) perfdata.Add(SqlTrace.EndTrace(topofqueue.ToString(), traceServerReader));
                }
                catch (Exception ex)
                {
                    Console.WriteLine();
                    Console.WriteLine("{0}: {1}", topofqueue, ex.Message);
                    throw ex;
                }
                finally
                {
                    totalcount++;
                    totaltime += ts;
                    // add to visited links
                    visited.Add(topofqueue);
                    // remove from queue
                    queue.RemoveAt(0);
                }

                if (perfdata != null)
                {
                    perfdata.Add(perf);
                }

                // -----------------
                Console.Write("{0}/{1} [avg: {2}]", totalcount, queue.Count, (totaltime / totalcount).ToString("0.00"));
                if (perf != null) Console.Write("[SQL: {0} in {1}] ", perf.Queries, perf.TotalDuration);
                Console.Write(" => ");

                int count = 0;
                foreach (HtmlUri uri in links)
                {
                    Uri fulluri = uri.Uri;

                    if (!root.IsBaseOf(fulluri))
                    {
                        // Console.WriteLine("\tSkipping {0}.", uri);
                        continue;
                    }

                    if (references.ContainsKey(fulluri) || queue.Contains(fulluri) || visited.Contains(fulluri))
                        continue;

                    Assert.IsFalse(fulluri.ToString().Contains("\0"),
                        string.Format("Uri {0} in {1} contains non-ASCII character.", fulluri, topofqueue));

                    Assert.IsFalse(fulluri.ToString().Contains("<%"),
                        string.Format("Uri {0} in {1} contains non-executed ASP.NET code.", fulluri, topofqueue));

                    Assert.IsFalse(fulluri.ToString().Contains("id=0"),
                        string.Format("Uri {0} in {1} contains a link to a zero id.", fulluri, topofqueue));

                    references.Add(fulluri, topofqueue);

                    // Console.WriteLine("\tAdding {0}.", fulluri.OriginalString);
                    queue.Add(fulluri);
                    count++;
                }

                if ((perfdata != null) && (((totalcount > 0) && ((totalcount % 100) == 0)) || (queue.Count == 0)))
                {
                    perfdata.DumpPigs();
                }
            }
        }