Rappresentazione di una connessione (tabulare)

L'oggetto connessione definisce l'origine dei dati che popolano il modello tabulare.

Rappresentazione di una connessione

L'oggetto connessione definisce l'origine dei dati che popolano il modello tabulare. Tramite l'oggetto connessione il modello può raggiungere i dati di un provider OLE DB; la specifica dell'oggetto connessione segue le regole dei provider OLE DB.

Connessione in AMO

Quando si utilizza AMO (Analysis Management Objects) per gestire un database modello tabulare, l'oggetto DataSource ha una corrispondenza uno-a-uno in AMO (Analysis Management Objects) con l'oggetto logico di connessione in un modello tabulare.

Nel frammento di codice seguente viene mostrato come creare un'origine dati AMO o un oggetto Connection nei modelli tabulari.

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

Esempio AMO2Tabular

Per comprendere meglio le modalità di utilizzo di AMO per creare e gestire le rappresentazioni di connessioni, vedere il codice sorgente dell'esempio Da AMO a tabulare; in particolare effettuare un controllo nel seguente file di origine: Datasource.cs. L'esempio è disponibile all'indirizzo Codeplex. Nota importante sul codice: il codice viene fornito solo come supporto ai concetti logici illustrati in questo argomento e non deve essere utilizzato in un ambiente di produzione né per altri scopi se non quello formativo.