コード例 #1
0
        /// <summary>
        /// Gets an ID from the Repository for this Data Source.
        /// </summary>
        /// <param name="reportingServer2010">The SQL 2008 R2 reporting server connection</param>
        /// <param name="path">Where the Datasource is in the Reporting Server</param>
        /// <returns>The Repository ID.</returns>
        private int HandleDataSource(SSRS2010.ReportingService2010 reportingServer2010, string path)
        {
            int idValue;

            SSRS2010.DataSourceDefinition dsDef = reportingServer2010.GetDataSourceContents(path);
            if (!datasourceInRepository.TryGetValue(path, out idValue))
            {
                idValue = repository.GetConnection(dsDef.ConnectString);
                if (idValue == -1)
                {
                    idValue = repository.AddObject(path, dsDef.ConnectString, Repository.OLEDBGuid, repository.RootRepositoryObjectID);
                    repository.AddAttribute(idValue, Repository.Attributes.ConnectionString, dsDef.ConnectString);
                    DbConnectionStringBuilder connectionStringBuilder = repository.GetConnectionStringBuilder(dsDef.ConnectString);
                    if (connectionStringBuilder == null)
                    {
                        connectionStringBuilder = repository.GetConnectionStringBuilder(string.Empty);
                    }
                    string Server   = repository.GetServer(connectionStringBuilder);
                    string Database = repository.GetDatabase(connectionStringBuilder);

                    if (string.IsNullOrEmpty(Server))
                    {
                        repository.AddAttribute(idValue, Repository.Attributes.ConnectionServer, "(NULL)");
                    }
                    else
                    {
                        repository.AddAttribute(idValue, Repository.Attributes.ConnectionServer, Server);
                    }

                    if (string.IsNullOrEmpty(Database))
                    {
                        repository.AddAttribute(idValue, Repository.Attributes.ConnectionDatabase, "(NULL)");
                    }
                    else
                    {
                        repository.AddAttribute(idValue, Repository.Attributes.ConnectionDatabase, Database);
                    }
                }
                datasourceInRepository.Add(path, idValue);
            }
            return(idValue);
        }