Hej Jeg er OK til Java og har nu kastet mig over C#, men jeg er løbet ind i problemer... Forestil dig dette:
reader = et-eller-andet-fra-min-database der henter 3 resultater ud while (!reader.Read()) { UPDATE myTabel SET dimmer = 0 WHERE descr = 'hest' }
Pointen er, at jeg efter hvert kald til databasen lukker forbindelsen igen, da jeg har forstået, at dette er den rigtige måde at gøre tingene på.
Den kode dør og kaster en exception, når jeg kommer til while-løkken 2. gang, fordi jeg lukker min forbindelse efter hvert kald til databasen, her en fake-UPDATE. Readeren er åbenbart knyttet til en åben forbindelse og lukker jeg forbindelsen, så lukker jeg samtidig readeren, hvilket giver problemer.
Hvordan omgår jeg dette, så readeren forbliver åben, men jeg kan knalde x antal SQL-statements af inde i while-løkken? Åbne en ny forbindelse, så jeg har 2 sideløbende forbindelser? Det kan blive en farlig omgang cowboykodning, så jeg vil gerne høre om "best practice" på området
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Mit råd vil være enten: - en connection til query og reader - en anden connection til update eller: - en connection - læs alle data - luk reader - lave alle updates
Hvis jeg har en connection til readers og en til updates - hvad sker der så, hvis jeg skal have gang i 2 readers - eller 10 for den sags skyld på et senere tidspunkt? En connection til hver? Det må kunne gøres smartere....
Jeg ved at der i MS SQL Server bliver oprettet en ConnectionPOOL for hver ConnectioString man benytter. Benytter man derfor altid den samme string altså fx ("pass=pass login=loginnavn ...") vil der stå en Pool åben hele tiden, som sørger for at der ikke skal åbnes og lukkes forbindelse til databasen hele tiden (ret smart) - Så nej, det er ikke nødvendigt at prøve at samle det hele i én stor pærevælling - Det sørger serveren for :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.