---
title: "Använda Timeout?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/169937-använda-timeout"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Fireh"
published: "2008-03-15T14:26:44.000Z"
updated: "2008-03-30T11:46:22.000Z"
replies: 5
views: 682
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/169937-använda-timeout"
---

# Använda Timeout?

## #1 — Fireh, 2008-03-15T14:26Z

Hej.

Jag försöker komma på hur man använder sig av timeout, eller om det finns en bättre möjlighet, för att upptäcka att SQL-servern inte är igång/inte svarar. Nedan följer den kod som används i Visual Basic för att öppna databasen:

```
Sub Databas()

On Error Resume Next
Set Conn = New ADODB.Connection
Conn.CommandTimeout = 2
Conn.ConnectionTimeout = 2

If Conn.State = Closed Then
  If dbTyp = "Access" Then
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
  End If
  If dbTyp = "SQL" Then
    Conn.ConnectionString = "Driver={SQL Server};Server=" & dbIP & ";Database=" & dbName & ";Uid=" & dbUser & ";Pwd=" & dbPass
    Conn.Open
  End If
End If

If Conn.State = Closed Then
  MsgBox "Det gick inte att öppna databasen!", vbCritical, "Fel"
End If

End Sub
```

Ovan öppnar antingen en Access-databas eller en databas på en SQL 2005-server. När det gäller Access-databasen är det inga problem, finns inte filen så blir det fel direkt. Men om jag stänger SQL-servern för att simulera att den inte svarar, så tar det 42 sekunder innan felmeddelande kommer. Jag har testat att ändra värdena för CommandTimeout och ConnectionTimeout, men det blir ingen som helst skillnad.

Är det här ett bra sätt att göra det på eller finns det något bättre sätt att kontrollera innan man försöker läsa/skriva och saker kraschar?

Tacksam för tips och hjälp.

Permalänk: https://www.webforum.nu/p/169937

## #2 — @nders, 2008-03-18T16:55Z

Flyttas från SQL.

Permalänk: https://www.webforum.nu/p/2092205

## #3 — Ledel, 2008-03-29T23:55Z

Med MSSQL 2005 så ska du kunna sätta din timeout i din connectionstring:
Conn.ConnectionString = "Driver={SQL Server};Server=" & dbIP & ";Database=" & dbName & ";Uid=" & dbUser & ";Pwd=" & dbPass &";Connect Timeout=10;"
Borde fungera.

Permalänk: https://www.webforum.nu/p/2094632

## #4 — Fireh, 2008-03-30T02:40Z

Jag tycker nog tyvärr inte det blev någon skillnad. Det tar fortfarande 42 sekunder innan jag får fel. Jag har provat med Connect Timeout=10, ConnectTimeout=10 och ConnectionTimeout=10 utifall du skrev fel också, men ingen av dom gjorde någon skillnad. Känns skumt... fler idéer?

Permalänk: https://www.webforum.nu/p/2094641

## #5 — Ledel, 2008-03-30T11:37Z

Hmm, testadedu Connection Timeout=10 (med mellanslag)?

Permalänk: https://www.webforum.nu/p/2094664

## #6 — Fireh, 2008-03-30T11:46Z

Nej, men nu gjorde jag det. Ingen skillnad :(

Permalänk: https://www.webforum.nu/p/2094665

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/169937-använda-timeout
