Veröffentlicht 12. März 20196 j Hi zusammen, kann mir wer helfen mit Powershell und SQL Abfragen. Ich stelle mich zu doof an. Ich benötige eine Abfrage die Von ServerA in DatenbankA einen Select macht. Dieser Select wird nur 1 Wert zurückliefern. Also z.B. select FELD from tabelle where recid='123' und das ganze in einer Variablen. Danke schonmal.
12. März 20196 j Du kannst einfach .Net Funktionen ganz einfach verwenden - z.B. $connectionString = "Data Source=SERVER\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=TESTDB" $con = New-Object System.Data.SqlClient.SqlConnection($connectionString) $command = New-Object System.Data.SqlClient.SqlCommand("select top 1 Name from Users where id=1", $con) $command.ExecuteScalar() ExecuteScalar() liefert max. 2033 Zeichen der ersten Spalte des Resultsets - bei Einzelwerten langt das evtl. schon. Wenn Du mehrere Spalten oder gar Zeilen brauchst, ist z.B. ein SqlDataAdapter nötig. Beispiele z.B hier: https://stackoverflow.com/questions/8423541/how-do-you-run-a-sql-server-query-from-powershell
12. März 20196 j Autor Bin ich zu doof für. Bestimmt muss um deinen Codeschnipsel noch was drum rum. # IP Adresse der Kasse # Kassennummer abfragen $KassenID = Read-Host -Prompt "Kassennummer (z.B. 000300) :" # benötigte Variablen definieren $QueryTimeout = 600 $ConnectString = "Server=Servername;Database=Produktiv;Integrated Security=True;" $connectionString = $ConnectString # KassenIP Abfragen Write-Host "frage Kassen IP ab" $connection = New-Object System.Data.SqlClient.SqlConnection $connection.ConnectionString = $connectionString $connection.Open() $query = "select Top 1 IPADDRESS from RETAILTERMINALTABLE where Terminalid = " + $KassenID + ";" $command = $connection.CreateCommand() $command.CommandText = $query $command.CommandTimeout = $QueryTimeout $result = $command.ExecuteReader() write-Host $result $connection.Close() Read-Host "Press Enter to continue…" | Out-Null Bisher hab ich es so versucht. Bekomme aber als Ausgabe von $result nur: System.Data.Common.DataRecordInternal Frage ist also wie kann ich deinen Code hier einbauen, oder wie bekomm ich es einfach hin das in einer variable: $KassenIP die IP Adresse steht?
12. März 20196 j Du bekommst ein Objekt zurück. In der Doku steht wie du auf das gewollte Feld zugreifen kannst: https://docs.microsoft.com/en-us/dotnet/api/system.data.common.dbdatarecord?view=netframework-4.7.2
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.