none
MSSQL mit Powershell abfragen RRS feed

  • Frage

  • Hallo,

    ich möchte mit Powershell eine MSSQl Tabelle abfragen und dort von der einen zurückgegebenen Zeile die drei Spalten in Variablen schreiben. der Datenbank Connect funktioniert nur habe ich Probleme mit dem Zurückgegebenen Daten.

    $SQLQuery = "SELECT  TOP 1 sArgument,sComment,nActiveMonitorTypeID FROM PivotActiveMonitorTypeToDevice WHERE (nDeviceID = 4030 nActiveMonitorTypeID = 332)"
    
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; 
    User ID= $uid; Password= $pwd" 
    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = $SQLQuery
    $SqlCmd.Connection = $SqlConnection 
    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd 
    $DataSet = New-Object System.Data.DataSet
    $SqlAdapter.Fill($DataSet) 

    Wie bekomme ich nun den String von sArgument und sComment in eine Variable ? 

    Danke für die Unterstützung 

    Ralf

    Dienstag, 11. Dezember 2018 11:47

Antworten

  • Wie bekomme ich nun den String von sArgument und sComment in eine Variable ? 

    Danke für die Unterstützung 

    Ralf

    $DataSet.Tables[0].Rows[0]['sArgument']



    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Dienstag, 11. Dezember 2018 11:49
  • Hallo,

    ich würde hierfür eine Funktion verwenden.
    ev. hilft dir das weiter:

    Function Invoke-SQLCommand { param( [string]$Server, [string]$sqlCommand ) $connectionString = "Server=$Server;database=master;Integrated Security=sspi" $connection = New-Object system.data.SqlClient.SQLConnection($connectionString) $command = New-Object system.data.sqlclient.sqlcommand($sqlCommand,$connection) $command.CommandTimeout = 0 $connection.Open() $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command $dataset = New-Object System.Data.DataSet $adapter.Fill($dataSet) | Out-Null $connection.Close() $dataSet.Tables }


    $sArgument="Value1"
    $sComment="Value2"
    $SQLQuery="SELECT  TOP 1 $($sArgument),$($sComment),nActiveMonitorTypeID FROM PivotActiveMonitorTypeToDevice WHERE (nDeviceID = 4030 nActiveMonitorTypeID = 332)"
    $sqlServer="SQLSERVER" $Result=Invoke-SQLCommand -Server $sqlServer -sqlCommand $SQLQuery


    lg
    Mittwoch, 12. Dezember 2018 10:18

Alle Antworten

  • Wie bekomme ich nun den String von sArgument und sComment in eine Variable ? 

    Danke für die Unterstützung 

    Ralf

    $DataSet.Tables[0].Rows[0]['sArgument']



    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Dienstag, 11. Dezember 2018 11:49
  • Hallo,

    ich würde hierfür eine Funktion verwenden.
    ev. hilft dir das weiter:

    Function Invoke-SQLCommand { param( [string]$Server, [string]$sqlCommand ) $connectionString = "Server=$Server;database=master;Integrated Security=sspi" $connection = New-Object system.data.SqlClient.SQLConnection($connectionString) $command = New-Object system.data.sqlclient.sqlcommand($sqlCommand,$connection) $command.CommandTimeout = 0 $connection.Open() $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command $dataset = New-Object System.Data.DataSet $adapter.Fill($dataSet) | Out-Null $connection.Close() $dataSet.Tables }


    $sArgument="Value1"
    $sComment="Value2"
    $SQLQuery="SELECT  TOP 1 $($sArgument),$($sComment),nActiveMonitorTypeID FROM PivotActiveMonitorTypeToDevice WHERE (nDeviceID = 4030 nActiveMonitorTypeID = 332)"
    $sqlServer="SQLSERVER" $Result=Invoke-SQLCommand -Server $sqlServer -sqlCommand $SQLQuery


    lg
    Mittwoch, 12. Dezember 2018 10:18
  • Hallo,

    danke für die beiden Antworten , sie haben mich beide weiter gebracht.

    Gruß Ralf

    Donnerstag, 13. Dezember 2018 13:58