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?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...