Изменение строки подключения во времени выполнения в Библиотеке Предприятия

Нет необходимости загружать весь браузер, чтобы получить HTML - вы можете обойтись без него.

Sub Test()

    '// References required:
    '// 1) Microsoft HTML Object Library
    '// 2) Microsoft XML, v6.0

    Dim req As MSXML2.XMLHTTP60
    Dim doc As MSHTML.HTMLDocument
    Dim tbl As MSHTML.HTMLTable
    Dim tblRow As MSHTML.HTMLTableRow
    Dim tblCell As MSHTML.HTMLTableCell
    Dim anch As MSHTML.HTMLAnchorElement
    Dim html$, url$, sText$, fecha$, valor$, j%

    Set req = New MSXML2.XMLHTTP60
    url = "http://www.bcra.gob.ar/PublicacionesEstadisticas/Principales_variables.asp"
    Set req = New MSXML2.XMLHTTP60
    req.Open "GET", url, False
    req.send
    html = req.responseText

    Set doc = New MSHTML.HTMLDocument
    doc.body.innerHTML = html

    Set tbl = doc.getElementsByClassName("table-BCRA")(, 0)
    For j = 1 To tbl.Rows.Length - 1
        With tbl.Rows(j)
            '// Skip cells without data.
            '// Assume correct data has three cells.
            If .Cells.Length = 3 Then
                Set anch = .Cells(0)
                sText = anch.textContent
                If sText = "Base Monetaria - Promedio acumulado del mes (MM de $)" Then
                    fecha = .Cells(1).innerText
                    valor = .Cells(2).innerText
                End If
            End If
        End With
    Next

End Sub
8
задан Community 23 May 2017 в 11:53
поделиться

2 ответа

Если Вы смотрите на "Документы Библиотеки Предприятия - Добавляющий Код приложения", он говорит это:

"Если Вы знаете строку подключения для базы данных, Вы хотите создать, можно обойти конфигурационную информацию приложения и использовать конструктора для прямого создания Объекта базы данных. Поскольку класс Базы данных является абстрактным базовым классом, необходимо создать один из его производных типов. Полученный Тип БД определяет поставщика данных ADO.NET. Например, класс SqlDatabase использует поставщика SqlClientFactory, класс SqlCeDatabase использует поставщика SqlCeProviderFactory, и класс OracleDatabase использует поставщика OracleClientFactory. Это - Ваша обязанность создать соответствующий тип класса Базы данных для строки подключения".

Это затем продолжает давать некоторые примеры. Это предложило бы, чтобы Вы не использовали DatabaseFactory, и необходимо создавать новый класс Базы данных для каждого из различных соединений.

3
ответ дан 5 December 2019 в 07:37
поделиться

Вот из чистой зоны Янга:

using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;

DatabaseSettings settings = new DatabaseSettings();

// This maps to <databaseType> element in data config file
DatabaseTypeData type = new DatabaseTypeData("Sql Server", "Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase, Microsoft.Practices.EnterpriseLibrary.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
settings.DatabaseTypes.Add(type);

// This maps to <connectionString> element in data config file
ConnectionStringData connectionString = new ConnectionStringData("localhost.EntLibQuickStarts");

// Followings map to <parameter> elements in data config file
ParameterData param = new ParameterData("server", "localhost");
connectionString.Parameters.Add(param);

param = new ParameterData("database", "EntLibQuickStarts");
connectionString.Parameters.Add(param);

param = new ParameterData("integrated security", "true");
connectionString.Parameters.Add(param);

settings.ConnectionStrings.Add(connectionString);

// Too bad compiler gets confused InstanceData with System.Diagnostics.InstanceData.  It maps to <instance> element in data config file
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.InstanceData instance = new    Microsoft.Practices.EnterpriseLibrary.Data.Configuration.InstanceData("localhost", "Sql Server", "localhost.EntLibQuickStarts");
settings.Instances.Add(instance);

ConfigurationDictionary configurations = new ConfigurationDictionary();

// This is how to tie DatabaseSettings with ConfigurationDictionary. It maps to <configurationSection name="dataConfiguration"> element in App.config file    configurations.Add("dataConfiguration", settings);
ConfigurationContext context = ConfigurationManager.CreateContext(configurations);

Database database = new DatabaseProviderFactory(context).CreateDatabase("localhost");
2
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: