AIDE MOI
using System;
using Microsoft.SqlServer.Dts.Runtime;
using System.Data.SqlClient;
using System.Security;
public void Main()
{
// Lecture des variables SSIS
string requete = Dts.Variables["User::requete"].Value.ToString();
string login = Dts.Variables["User::ad_login"].Value.ToString();
string motDePasse = Dts.Variables["User::ad_password"].Value.ToString();
string serveur = Dts.Variables["User::sql_instance"].Value.ToString();
string baseDeDonnees = Dts.Variables["User::sql_database"].Value.ToString();
bool fireAgain = false;
try
{
// Convertir le mot de passe en SecureString
SecureString securePwd = new SecureString();
foreach (char c in motDePasse)
{
securePwd.AppendChar(c);
}
// Créer les credentials AD
SqlCredential credential = new SqlCredential(login, securePwd);
// Connexion SQL Server 2017 (ne pas utiliser Integrated Security dans ce cas)
string connectionString = $"Data Source={serveur};Initial Catalog={baseDeDonnees};Integrated Security=false;";
using (SqlConnection conn = new SqlConnection(connectionString, credential))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(requete, conn))
{
int rowsAffected = cmd.ExecuteNonQuery();
Dts.Events.FireInformation(0, "Execution réussie", $"{rowsAffected} lignes affectées.", "", 0, ref fireAgain);
}
}
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Erreur d'exécution", ex.ToString(), "", 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}