2017-10-12 1 views
0

Ich verbinde SQLServer-Datenbank mit PowerShell. Mein Skript, das einen SQL-Code ausführt, funktioniert einwandfrei, aber in regelmäßigen Abständen schlägt es fehl, die gewünschte Ausgabe zu generieren, und es kann dann wieder ausgeführt werden.SQLServer-Verbindung mit PowerShell Problemeinstellung ConnectionTimeout Eigenschaft

$mySQLQuery = "SQL Query Here" 

$myDataSet = New-Object System.Data.DataSet "myDataResultSet" 
    $sqlConn = New-Object System.Data.SqlClient.SqlConnection("Data Source=myDataSource;Initial Catalog=myDBServer;Integrated Security = False; User ID = UserName; Password =PassWord;") 
    $SqlConn.ConnectionTimeout= 0 
    $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($mySQLQuery, $sqlConn) 
$adapter.Fill($myDataSet) 
$SqlConn.Close() 

Beim Suchen und Lesen habe ich festgestellt, dass es etwas mit Verbindungs-Timeout zu tun hat. Ich habe versucht, SQL-Verbindung Timeout 0 von Standard-30 zu setzen, sondern während der scirpt laufe ich Fehler immer sagen, unten:

$sqlConn.ConnectionTimeout = 0 is read-only property. 

Jede Idee, was ich hier falsch mache?

Vielen Dank.

+0

Dank wird dies unter Vorschlag bei versuchen nicht funktioniert. Appare deine Antwort. –

Antwort

1

Der einfachste Weg, um dies zu beheben, ist ;Connection Timeout=60 zu Ihrer Verbindungszeichenfolge hinzuzufügen.

Sie wahrscheinlich nicht wollen, dass es auf 0 gesetzt ist, verwenden Sie 300 oder etwas, wenn Sie einen lächerlich hohen Wert benötigen.

+0

Vielen Dank, versuchen Sie es und sehen, wie es geht. –

0

Persönlich habe ich den Befehl Timeout statt der Verbindung ...

$connection = New-Object System.Data.SqlClient.SqlConnection 
$connection.ConnectionString = "<yourconnectionstring>" 

$command = $connection.CreateCommand() 
$command.CommandText = "<yoursql>" 
$command.CommandTimeout = 0 

$results = $command.ExecuteReader() 

$table = New-Object System.Data.DataTable 
$table.Load($results) 

$connection.Dispose() 
Verwandte Themen