예제 #1
0
    public static string GetSourceDisplayName(
        IServiceProvider serviceProvider,
        IVsDataSource dataSource)
    {
        string displayName = null;
        string resourceId  = null;
        Guid   provider    = dataSource.DefaultProvider;

        if (provider != Guid.Empty)
        {
            resourceId = dataSource.GetProperty(provider, "DisplayName") as string;
        }
        if (resourceId == null)
        {
            foreach (Guid providerId in dataSource.GetProviders())
            {
                resourceId = dataSource.GetProperty(
                    providerId, "DisplayName") as string;
                if (resourceId != null)
                {
                    provider = providerId;
                    break;
                }
            }
        }
        if (provider != Guid.Empty && resourceId != null)
        {
            IVsDataProviderManager providerManager = serviceProvider.GetService(
                typeof(IVsDataProviderManager)) as IVsDataProviderManager;
            IVsDataProvider dataProvider = providerManager.Providers[provider];
            displayName = dataProvider.GetString(resourceId);
        }
        return(displayName);
    }
예제 #2
0
        internal static bool DDEXProviderIsInstalled(Guid id)
        {
            IVsDataProvider provider = null;
            var             objIVsDataProviderManager = SqlCeToolboxPackage.GetGlobalService(typeof(IVsDataProviderManager)) as IVsDataProviderManager;

            return(objIVsDataProviderManager.Providers.TryGetValue(id, out provider));
        }
예제 #3
0
    public static Stream GetProviderString(IVsDataProvider provider,
                                           string resourceName, string assemblyString)
    {
        Assembly assembly = provider.GetAssembly(assemblyString);

        return(assembly.GetManifestResourceStream(resourceName));
    }
예제 #4
0
    public static IVsDataObjectSelector CreateObjectSelector(
        IVsDataProvider provider, string objectSelectorTypeName)
    {
        Type objectSelectorType = provider.GetType(objectSelectorTypeName);

        return(Activator.CreateInstance(objectSelectorType)
               as IVsDataObjectSelector);
    }
예제 #5
0
 public static bool AllowDelete(IVsDataProvider provider,
                                IVsDataExplorerNode node)
 {
     if (!provider.IsOperationSupported(StandardCommands.Delete, node))
     {
         MessageBox.Show(provider.GetUnsupportedReason(
                             StandardCommands.Delete, node));
         return(false);
     }
     return(true);
 }
예제 #6
0
    public static void Example(
        IVsDataProvider provider)
    {
        Guid source1 = provider.DeriveSource("Provider=SQLOLEDB.1");

        Trace.WriteLine(source1); // MSSqlServerDataSource
        Guid source2 = provider.DeriveSource(
            "Provider=Microsoft.Jet.OLEDB.4.0");

        Trace.WriteLine(source2); // MSAccessDBFileDataSource
    }
예제 #7
0
    public static string GetDisplayName(
        IVsDataProvider provider)
    {
        string displayName = String.Empty;
        string resourceId  = provider.GetProperty("DisplayName") as string;

        if (resourceId != null)
        {
            displayName = provider.GetString(resourceId);
        }
        return(displayName);
    }
예제 #8
0
    public static void OutputSupportingProviders(
        IServiceProvider serviceProvider,
        IVsDataSource dataSource)
    {
        IVsDataProviderManager providerManager =
            serviceProvider.GetService(typeof(IVsDataProviderManager))
            as IVsDataProviderManager;

        foreach (Guid providerGuid in dataSource.GetProviders())
        {
            IVsDataProvider provider = providerManager.Providers[providerGuid];
            Trace.WriteLine(provider.Name);
        }
    }
예제 #9
0
        internal static IVsDataProvider GetVsProvider(IVsDataProviderManager dataProviderManager, IVsDataConnection dataConnection)
        {
            if (dataConnection == null)
            {
                throw new ArgumentNullException("dataConnection");
            }

            IVsDataProvider vsDataProvider = null;

            dataProviderManager.Providers.TryGetValue(dataConnection.Provider, out vsDataProvider);

            Debug.Assert(
                vsDataProvider != null, "Data provider identified by guid '{0}' could not be loaded" + dataConnection.Provider.ToString());
            return(vsDataProvider);
        }
예제 #10
0
    public static IVsDataConnectionProperties CreateConnectionProperties(
        IVsDataProvider provider)
    {
        IVsDataConnectionProperties connProperties = null;

        try
        {
            connProperties = provider.CreateObject <IVsDataConnectionProperties>();
        }
        catch (DataProviderException e)
        {
            MessageBox.Show(e.Message);
        }
        return(connProperties);
    }
예제 #11
0
    public static DbConnection CreateAdoDotNetConnection(
        IVsDataProvider provider)
    {
        string invariantName = provider.GetProperty("InvariantName") as string;

        if (invariantName != null)
        {
            DbProviderFactory factory = DbProviderFactories.GetFactory(
                invariantName);
            if (factory != null)
            {
                return(factory.CreateConnection());
            }
        }
        return(null);
    }
예제 #12
0
    public static void UseDataProvider(
        IServiceProvider serviceProvider,
        Guid providerGuid)
    {
        IVsDataProviderManager providerManager =
            serviceProvider.GetService(typeof(IVsDataProviderManager))
            as IVsDataProviderManager;
        IVsDataProvider provider = providerManager.Providers[providerGuid];

        Trace.WriteLine(provider.DisplayName);
        Trace.WriteLine(provider.Description);
        IVsDataConnectionProperties connectionProperties =
            provider.CreateObject <IVsDataConnectionProperties>();

        connectionProperties.Parse("Test connection string");
    }
예제 #13
0
    public static void OutputDataSource(
        IServiceProvider serviceProvider,
        Guid dataSourceGuid)
    {
        IVsDataSourceManager sourceManager =
            serviceProvider.GetService(typeof(IVsDataSourceManager))
            as IVsDataSourceManager;
        IVsDataSource source = sourceManager.Sources[dataSourceGuid];

        Trace.WriteLine(source.DisplayName);
        Trace.WriteLine(source.Description);
        IVsDataProviderManager providerManager =
            serviceProvider.GetService(typeof(IVsDataProviderManager))
            as IVsDataProviderManager;

        foreach (Guid providerGuid in source.GetProviders())
        {
            IVsDataProvider provider = providerManager.Providers[providerGuid];
            Trace.WriteLine(provider.Name);
        }
    }
예제 #14
0
        internal static string GetProviderInvariantName(IVsDataProviderManager dataProviderManager, Guid provider)
        {
            var             invariantName = String.Empty;
            IVsDataProvider dataProvider  = null;

            Debug.Assert(dataProviderManager != null, "_dataProviderManager is not initialized!");
            if (dataProviderManager != null)
            {
                dataProviderManager.Providers.TryGetValue(provider, out dataProvider);
                Debug.Assert(dataProvider != null, "Invalid provider Guid");
                if (dataProvider != null)
                {
                    invariantName = (string)dataProvider.GetProperty("InvariantName");
                }
            }

            Debug.Assert(
                !String.IsNullOrEmpty(invariantName),
                "provider " + dataProvider != null ? dataProvider.DisplayName : "(null)" + " has a null InvariantName");

            return(invariantName);
        }
예제 #15
0
 public static IVsDataConnectionProperties CreateConnectionProperties(
     IVsDataProvider provider)
 {
     return(provider.TryCreateObject <IVsDataConnectionProperties>());
 }
예제 #16
0
 public static bool HasSpecialConnectForUI(
     IVsDataProvider provider, Guid source)
 {
     return(provider.SupportsObject(
                source, typeof(IVsDataConnectionUIConnector)));
 }