venerdì 29 luglio 2011

SSIS Script Component, implementazione di un Lookup.

// LOOKUP, lettura di dati potenzialmnente nulli, quindi da controllare esplicitamente.
// Utilizzo di una query con paramentri.
if (!Row.idCliente_IsNull)
{
    // L'accensione ha l'id cliente, viene processata.
    queryString = "SELECT indirizzo, numero, comune, cap FROM MOD2_Anagrafica_Clienti WHERE id = @id;";
    sqlCmd = new SqlCommand(queryString, sqlConn);
    sqlCmd.Parameters.Add("@id", SqlDbType.Int).Value = Row.idCliente;

    using (SqlDataReader reader = sqlCmd.ExecuteReader())
    {
        while (reader.Read())
        {
            // Indirizzo Ubicazione
            obj = reader[reader.GetOrdinal("indirizzo")];
            if (!(MyObjIsNull(obj)))
                Row.indirizzoUbicazione = obj.ToString();

            // Civico Ubicazione
            obj = reader[reader.GetOrdinal("numero")];
            if (!(MyObjIsNull(obj)))
            {
                if (obj.ToString().Length > 5)
                    Row.civicoUbicazione = obj.ToString().Substring(0, 5);
                else
                    Row.civicoUbicazione = obj.ToString();
            }

            // Comune (istat) Ubicazione
            obj = reader[reader.GetOrdinal("comune")];
            if (!(MyObjIsNull(obj)))
                Row.comuneUbicazione = obj.ToString();

            // CAP Ubicazione
            obj = reader[reader.GetOrdinal("cap")];
            if (!(MyObjIsNull(obj)))
                Row.capUbicazione = obj.ToString();
            this.ComponentMetaData.FireInformation(0, " ---------- " + this.ComponentMetaData.Name + " ---------- ", "DATI LETTI idAccensione: " + Row.idAccensione + ", indirizzoUbicazione: " + Row.indirizzoUbicazione + ", civicoUbicazione: " + Row.civicoUbicazione + ", comuneUbicazione: " + Row.comuneUbicazione + ", capUbicazione: " + Row.capUbicazione + ".", string.Empty, 0, ref fireAgain);


        }
    }
}

Nessun commento:

Posta un commento