Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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?

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...