Enno Geschrieben 12. März 2019 Geschrieben 12. März 2019 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. Zitieren
RipperFox Geschrieben 12. März 2019 Geschrieben 12. März 2019 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 Zitieren
Enno Geschrieben 12. März 2019 Autor Geschrieben 12. März 2019 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? Zitieren
äymm Geschrieben 12. März 2019 Geschrieben 12. März 2019 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.