Ciao a tutti ragazzi e complimenti per il sito.
Visto che sono nuovo di PS, ho un paio di domande da farvi.
1) Per quanto riguarda la dichiarazione delle variabili, che differenza c'è fra
$a
$ a
a $
2) Ho letto un articolo molto interessante, per importare un foglio di calcolo Excel su una tabella SQL Server tramite OLE DB (http://translate.googleusercontent.com/translate_c?hl=it&langpair=en|it&rurl=translate.google.it&twu=1&u=http://poshcode.org/1098&usg=ALkJrhiHL-AUBOBC_NRAM5cMFSJYrSWusA) ma ho dei problemi con lo script...(sotto ho riportato il mio scrpt)
ERRORE
# Eccezione durante la chiamata di "Fill" con "1" argomento/i: "Testo del comando non impostato per l'oggetto comando."
#In D:\PROGETTI_COBACO\2010\PROGETTI_PSHELL\EXCEL_TO_SQL\ExcelToSQL.ps1:33 car:16
#+ [void]$Da.fill <<<< ($Dt)
...
Se non sbaglio il file excel viene caricato bebe ma lo script non riesce a caricarlo sul Datatable, nel file Exel c'è un solo Worksheet "Foglio1" dove è valorizzata solamente la prima colonna da A1 fino ad A6 con dei valori casuali.
grazie anticipatamente
###########
#MIO SCRIPT
###########
$percorsofile = "D:\backupset.xlsx"
# Stringa di connessione per Excel 2007:
$ConnString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source ='" + $percorsofile + "'; Extended Properties = 'Excel 12.0 Xml; HDR = YES';"
$Sqlserver = 'PC'
$Dbname = 'PORTALE'
$Nometabella = 'ExcelData_fill'
#######################
function Get-ExcelData
{
param ($connString, $Qry = 'SELECT * FROM Foglio1')
$Conn = new-object System.Data.OleDb.OleDbConnection ($connString)
$Conn.Open()
$Cmd = new-object System.Data.OleDb.OleDbCommand ($Qry, $conn)
$Da = new-object System.Data.OleDb.OleDbDataAdapter ($cmd)
$Dt = new-object System.Data.DataTable
[void]$Da.fill($Dt)
$Conn.Close()
$Dt
} # Get-ExcelData
#######################
function Write-DataTableToDatabase
{
param ($dt, $DESTSERVER, $destDb, $destTbl)
ConnectionString$ = "Data Source = $DESTSERVER; Integrated Security = true; Initial Catalog = $destdb;"
$Bulkcopy = new-oggetto ("Data.SqlClient.SqlBulkCopy") $connectionString
$BulkCopy.DestinationTableName = "$destTbl"
$BulkCopy.WriteToServer($dt)
} # Scrittura DataTableToDatabase
#######################
$Dt = Get-ExcelData $connString $Qry
Scrittura $DataTableToDatabase $sqlserver $dt $dbname $nometabella