Compartilhar via


Representação de conexão (de tabela)

O objeto de conexão define a origem dos dados que populam o modelo de tabela.

Representação de conexão

O objeto de conexão define a origem dos dados que populam o modelo de tabela. É pelo objeto de conexão que o modelo pode alcançar os dados de um provedor OLE DB; a especificação do objeto de conexão segue as regras de provedores OLE DB.

Conexão em AMO

Ao usar o AMO para gerenciar um banco de dados Modelo de Tabela, o objeto DataSource no AMO coincide um-para-um ao objeto lógico de conexão em um modelo de tabela.

O trecho de código a seguir mostra como criar uma fonte de dados de AMO ou objeto de conexão em modelos de tabela.

  //Create an OLEDB connection string
  StringBuilder SqlCnxStr = new StringBuilder();
  SqlCnxStr.Append(String.Format("Data Source={0};" ,SQLServer.Text));
  SqlCnxStr.Append(String.Format("Initial Catalog={0};", SQLDatabase.Text));
  SqlCnxStr.Append(String.Format("Persist Security Info={0};", false));
  SqlCnxStr.Append(String.Format("Integrated Security={0};", "SSPI"));
  SqlCnxStr.Append(String.Format("Provider={0}", "SQLNCLI11"));
  String DatasourceCnxString = SqlCnxStr.ToString();

  //Verify connection string and connectivity
  System.Data.OleDb.OleDbConnection OleDbCnx = new System.Data.OleDb.OleDbConnection(DatasourceCnxString);
  try
  {
      OleDbCnx.Open();
  }
  catch ()
  {
      throw;
  }
  String newDataSourceName = (string.IsNullOrEmpty(DataSourceName.Text) || string.IsNullOrWhiteSpace(DataSourceName.Text)) ? SQLDatabase.Text : DataSourceName.Text;
  AMO.DataSource newDatasource = newDatabase.DataSources.Add(newDataSourceName, newDataSourceName);
  newDatasource.ConnectionString = DatasourceCnxString.Text;
  if (impersonateServiceAccount.Checked)
      newDatasource.ImpersonationInfo = new AMO.ImpersonationInfo(AMO.ImpersonationMode.ImpersonateServiceAccount);
  else
  {
      if (String.IsNullOrEmpty(impersonateAccountUserName.Text))
      {
          MessageBox.Show(String.Format("Account User Name cannot be blank when using 'ImpersonateAccount' mode"), "AMO to Tabular message", MessageBoxButtons.OK, MessageBoxIcon.Information);
          return;
      }
      newDatasource.ImpersonationInfo = new AMO.ImpersonationInfo(AMO.ImpersonationMode.ImpersonateAccount, impersonateAccountUserName.Text, impersonateAccountPassword.Text);
  }
  newDatasource.Update();

Exemplo de AMO2Tabular

Para compreender melhor como usar o AMO para criar e manipular representações de conexão, consulte o código-fonte do exemplo AMO para Tabela; verifique especificamente o seguinte arquivo de origem: Datasource.cs. O exemplo está disponível em Codeplex. Uma nota importante sobre o código: o código é fornecido apenas como um suporte aos conceitos lógicos explicados aqui; ele não deve ser usado em um ambiente de produção, nem para fins que não sejam pedagógicos.