Ho un elenco di query da utilizzare per una serie di file di output associati. Sto avendo un blocco su ciò che un buon progetto sarebbe di mettere tutto insieme per le mie query da eseguire e l'output inviato ai file in modo uniforme. Di solito non ho la stessa cosa che deve fare così tante volte. Questo è con PowerShell ma dovrei essere in grado di utilizzare la maggior parte delle idee di design fornite. Sembra così:
$SQLquery_1 = @" blah "@
$SQLquery_2 = @" blah "@
#There's maybe 10 different queries
#The output files
$extractFiles = @("C:\temp\ProfileLongLangBak.csv","C:\temp\ProfileLongCredBak.csv", blah blah list of files)
#and of course there's about 10 powershell commands to do the sql query which works just fine. The below hasn't incorporated separate sql queries and output files yet
#create sql connection to connect to the sql DB
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = "Server=sqldev;Database=M_Test;User ID=blah;Password=blah"
$sqlConnection.Open()
#Create a SqlCommand object to define the query
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandText = $SQLquery_Languages
$sqlCmd.Connection = $sqlConnection
#create a SqlAdapter that actually does the work and manages everything
$sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$sqlAdapter.SelectCommand = $sqlCmd
#create an empty dataSet for the query to fill with its results
$dataSet = New-Object System.Data.DataSet
#execute the query and fill the dataSet (then disconnect)
$sqlAdapter.Fill($dataSet)
$sqlConnection.Close()
#dump the data to csv
$DataSet.Tables[0] | Export-Csv $extractFile #this may not be comma delimited...need to check
Il mio primo pensiero è di avere le query sql in una matrice e fare un ciclo attraverso entrambi gli array con un ciclo for che inizia con $ i = 0. Ma le query sono troppo lunghe per essere inserite in un array.
Stavo pensando di mettere tutti i comandi di PowerShell per la query in una funzione e chiamare la funzione con ogni query e il file di output come input e con ogni chiamata sarebbe scritto un altro file di risultati.
Qualcuno ha una buona idea di come gestire le lunghe stringhe di query in un design fluido per passare attraverso il lungo elenco di query e file di output? Grazie!