Ga naar inhoud

[ASP] foutmelding: "Database al in gebruik"


Aanbevolen berichten

Sorry voor de onduidelijke uitleg. Nu ik het nalees snap ik er zelf ook niet veel meer van. Het probleem is opgelost, ik had namelijk twee keer dezelfde verbinding aangemaakt. Dus eerst maakte ik deze verbinding aan: set connDB = Server.CreateObject("ADODB.Connection") connDB.Open "DSN=mijndb" maar verder op in de pagina stond al een verbinding met een iets andere naam. set conDB = Server.CreateObject("ADODB.Connection") conDB.Open "DSN=mijndb" nadat ik er een vebinding had verwijderd deed alles het weer In ieder geval het is opgelost hartelijk dank.
Link naar reactie
  • 7 maanden later...
Het restarten van IIS service lost dit probleem niet op. Een sessie veloopt toch als je het venster sluit? In global.asa in de procedure Session_onEnd() sluit ik alle connecties en set ik de objecten op Nothing. Zelfs dan blijf ik die foutmelding krijgen en kan ik het alleen oplossen door de server te herstarten. Hoe kun je testen dat global.asa wordt gebruikt? RJS Hard
Link naar reactie
En waar open je de connections? Na de executie van een script worden connections die geopend zijn in het script automatisch opgeruimd (tenminste dat zou zo moeten zijn). Maar om zeker te zijn, en om je code schoon te houden, raad ik aan om gewoon na het gebruik van je connection deze zelf te sluiten en op Nothing te zetten binnen je code. Bij mijn weten reikt de scope van de connection objecten ook niet tot session niveau en dus is het sluiten van de objecten in de session_onend zinloos, aangezien deze daar dus niet meer bestaat. Tenzij je de connection in een session object hebt zitten (wat overigens over het algemeen wordt afgeraden). Overigens zou je het gebruik van de global.asa kunnen testen door daarin een logging-routine in te bouwen (iets schrijven naar database of textfile). HTH
Link naar reactie
En waar open je de connections? Na de executie van een script worden connections die geopend zijn in het script automatisch opgeruimd (tenminste dat zou zo moeten zijn). Maar om zeker te zijn, en om je code schoon te houden, raad ik aan om gewoon na het gebruik van je connection deze zelf te sluiten en op Nothing te zetten binnen je code. Bij mijn weten reikt de scope van de connection objecten ook niet tot session niveau en dus is het sluiten van de objecten in de session_onend zinloos, aangezien deze daar dus niet meer bestaat. Tenzij je de connection in een session object hebt zitten (wat overigens over het algemeen wordt afgeraden). Overigens zou je het gebruik van de global.asa kunnen testen door daarin een logging-routine in te bouwen (iets schrijven naar database of textfile). HTH Ik heb de Connection object inderdaad op session niveau. Die wordt geopend in een login script. Als het script goed verloopt dan wordt de connectie gesloten en geredirect naar een pagina waar de database kan worden gewijzigd. Op die pagina wordt dezelfde connectie gebruikt als op de login pagina. Als er een error is op de database pagina dan wordt de connectie niet verbroken doormiddelvan bijvoorbeeld: objCon.Close Set objCon = Nothing Sluit ik het venster en open ik de login pagina in een nieuw venster dan krijg ik die foutmeling.
Link naar reactie
[quote:3f4df5a19e="RJS Hard"]Ik heb de Connection object inderdaad op session niveau.[/quote:3f4df5a19e] Ik zou iig starten met het connection object uit de session te halen en gewoon de connection binnen het asp script te openen en te sluiten. Daarmee voorkom je in ieder geval dat onnodige resources worden verspild in sessions (vergeet niet dat deze een standaard timeout hebben van 20 min en dus al deze tijd de connection in stand houden als deze niet netjes gesloten wordt).
Link naar reactie
[quote:a49b63c692="RJS Hard"]... Ook al is het venster gesloten ...[/quote:a49b63c692] Pas op: het sluiten van een browservenster betekent niet dat de session wordt afgesloten!!! Als een session niet via het script wordt beeindigt dan zal deze pas na de ingestelde tijd verlopen (afaik). Dus ook recordset-objecten kan je het best binnen je scripts laten. Het is natuurlijk onder normale omstandigheden geen enkel probleem om meerdere connecties te openen. Heb je al op MSDN gekeken of je iets kan vinden mbt je probleem cq. foutmelding? Of heb je al geprobeerd om een DSN-less connectie op te zetten?
Link naar reactie
Ik heb al met DSN-Less connecties gewerkt maar het leek mij professioneler of beter om met DSN te werken. De recordset objecten wil ik graag op sessie niveau houden. Dat werkt makkelijker als je een record in een tabel wilt wijzigen. Bijvoorbeeld Je klikt op een record in een tabel en je wordt geredirect naar een pagina met een formulier om de waarden te wijzigen. Als het recordset object dan op sessie niveau is dan kun je daar gelijk de waarden van het te wijzigen record halen. Weet iemand misschien een andere manier om dit te realiseren? RJS
Link naar reactie
Das nu het leuke van programmeren dat oplossen van problemen. Zo'n forum bij de hand is trouwens verek handig. Leve het internet. 't gaat trouwens al n stuk beter. Ik heb alle ADO objecten uit de sessie gehaald. Alle bestanden die nodig zijn include ik zodat ik de objecten in elke asp bestand kan gebruiken. Alleen het Recordset object waar in de database is geopend houw ik in de sessie. Ik wil de site wel ff online zetten
Link naar reactie
Oké ik wil die laatste ADO object ook uit de sessie halen maar dan heb ik vraag als ik een record wil wijzigen dan heb ik de positie nodig waar de recordt geplaatst is in de database. De waarde van de positie kan ik dan meegeven naar de pagina waar het record moet worden gewijzigd. Ik zou natuurlijk de in de database een id veld die automatisch nummert kunnen aanmaken maar ik wil dat de site ook werkt met databases die dit niet hebben
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...