12. september 2006 - 12:51Der er
9 kommentarer og 1 løsning
MS SQL - Flere jobs under én connection
Hej, er lidt i tvivl, er det muligt at udføre flere jobs under én connection og måske under samme command? Det vil sige uden at skulle til at lukke connection og danne ny command.
Eksempel:
Private Sub ReadOData(ByVal connectionString As String) Dim queryString As String = _ "SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(queryString, connection) connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader() While reader.Read() 'Gør noget End While reader.Close()
ADO.NET 2.0 understøtter MARS (multiple active result sets), men hvis du bruger .NET Connection tror jeg ikke du har faciliteten - selvom om du bruger den i en 2.0 løsning (med mindre de her for nylig har lavet en 2.0 udgave). Mvh
For: - god performance - god portabilitet mellem databaser vil jeg anbefale: - åben 1 connection - udfør 1..N database operationer serielt (uden overlap) med et command objekt per operation og alle med samme connection - luk connection igen for hver request fra client
Det lyder spændende med MARS - må jeg ind og kigge på, men foreløbig ville det være rart at kunne bruge det i min eksisterde kode ned alm. SqlConnection :-)
Hej Arne,
Hvordan ser 1..N databaseoperationer med et command objekt per operation ud jf. ovenstående kode. Opretter jeg både et ny commandobjekt og en reader pr. operation?
Ok, men jeg er nødt til at give hver command og hver reader et nyt unikt navn under hver operation i samme connection? Jeg kan ikke bare instantiere et nyt objekt af i forvejen definerede?
Eks. hvis jeg på forhånd har defineret
Dim MyCmd as SqlCommand Dim MyRs as SqlDataReader
Og så bruge dem igen og igen under samme connection - bare for at spare tid og kodeplads.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.