Please, if you find something more elegant, please drop a note.
Well to make SQLPSX one of the most powerfull tools to extract data from SQL-Server or Oracle databases I just want to transform a datarow into a tabular representation.
$datarow | Format-Table -auto
seems a good start, but as described in http://poshoholic.com/2010/11/11/powershell-quick-tip-creating-wide-tables-with-powershell/
you need to pass the result to Out-String -width 10000 or as many characters you want.
Sorry can't say -1 for unlimited. (Perhaps in V3, if we cry load enough?)
Oops not all columns included, lets add -property *
$datarow | Format-Table -auto -property * | Out-String -width 10000
Oops what happens now? At the end you get some unwanted addition columns:
RowError, RowState, Table, ItemArray, HasErrors
A problem well described in https://connect.microsoft.com. With no work around supplied.
Go there and vote for it.
And here is the code, that gives me the wanted result. I agree, it is ugly, but its result is fine:
$columns = '' foreach ($i in 0.. ($res[0].Table.columns.count -1)) { if ($columns) { $columns += ', '+ $res[0].Table.Columns[$i].ColumnName } else { $columns = $res[0].Table.Columns[$i].ColumnName} } $c = '($res | ft -Property ' + $columns + ' -auto | Out-string -width 10000 -stream ) -replace " *$", ""-replace "\.\.\.$", "" -join "`r`n" ' $text = Invoke-expression $c
I hope this helps
Bernd