piątek, 30 marca 2012

Inny sposób dostępu do zewnętrznego źródła danych

Oto inny sposób dostępu do zewnętrznego źródła danych z poziomu systemu Dynamics AX.

W przypadku uruchamiania przykładu, proszę o sprawdzenia
  1. connection string do bazy danych
  2. uprawnienia do zewnętrznego źródła danych

  
static void SBR_TestSQLPrice(Args _args)
{
    System.Data.SqlClient.SqlConnection             sqlConn;
    System.Data.SqlClient.SqlDataReader             sqlDataReader;
    System.Data.SqlClient.SqlCommand                sqlCommand;
    System.Data.SqlClient.SqlParameterCollection    sqlParm;

    AccountNum                              accountNum;
    Name                                    name;
    CustGroupId                             custGroupId;
    ;
    try
    {
        sqlConn = new System.Data.SqlClient.SqlConnection('Server=TEST2-AXAPTA2009;Trusted_Connection=YES;Database=OPT_AX2009_DEV_LIVE;Connection timeout=5');
        sqlConn.Open();

        sqlCommand = new System.Data.SqlClient.SqlCommand('Select AccountNum, Name, CustGroup from CustTable Where DataAreaId = @Parm', sqlConn);

        sqlParm = sqlCommand.get_Parameters();
        sqlParm.AddWithValue('@Parm', curExt() );

        sqlDataReader = sqlCommand.ExecuteReader();

        while (sqlDataReader.Read())
        {
            accountNum  = sqlDataReader.GetString( sqlDataReader.GetOrdinal('AccountNum'));
            name        = sqlDataReader.GetString( sqlDataReader.GetOrdinal('Name'));
            custGroupId = sqlDataReader.GetString( sqlDataReader.GetOrdinal('CustGroup'));

            info(strFmt('%1 - %2 / %3', accountNum, name, custGroupId ) );
        }

        sqlDataReader.Close();
        sqlConn.Close();
    }
    catch (Exception::CLRError)
    {
        error(AifUtil::getClrErrorMessage());
    }
}