Compartir a través de


Representación de conexión (tabular)

El objeto de conexión define el origen de datos que rellena el modelo tabular.

Representación de conexión

El objeto de conexión define el origen de datos que rellena el modelo tabular. Es a través del objeto de conexión que el modelo puede tener acceso a los datos de un proveedor OLE DB; la especificación del objeto de conexión sigue las reglas de los proveedores OLE DB.

Conexión en AMO

Cuando use AMO para administrar una base de datos de modelo tabular, el objeto DataSource en AMO coincide de forma unívoca con la conexión lógica de un modelo tabular.

En el fragmento de código siguiente se muestra cómo se crea un objeto de conexión o un origen de datos de AMO en modelos tabulares.

  //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();

Ejemplo AMO2Tabular

Para obtener una descripción más detallada acerca de cómo se usa AMO para crear y tratar representaciones de conexión, vea el código fuente del ejemplo AMO a tabular; en concreto, revise el siguiente archivo fuente: Datasource.cs. El ejemplo está disponible en Codeplex. Una nota importante sobre el código: se proporciona solo como apoyo de los conceptos lógicos explicados aquí y no debe utilizarse en un entorno de producción; no debe usarse para otros fines excepto el pedagógico.