Avatar billede kimlarsen1978 Nybegynder
19. januar 2003 - 19:50 Der er 11 kommentarer og
1 løsning

File Already in use

Jeg har 3 billeder der skrifter på skift (de ligger på 3 forskellige sider som så hentes ind i nogle rammer), men når de kører så går der lige lidt også får jeg fejlen "File already in use" og derefter "Provider error", så går der lige 2 minutter så kører det igen. Jeg etabelrer forbindelse sådan her:
---------
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\Inetpub\wwwroot\xxxx\xxxx.mdb; uid=; pw=;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
%>
---------

og de sider der henter billeder ud ser sådan herud:

---------
<html>

<head>
<meta HTTP-EQUIV="refresh" CONTENT="10; URL=MaskinRoterDansk.asp">
</head>

<!--#include file="forbindelse.asp" -->

<%
Sql = "Select count(*) as Found from Billeder Where Lillebillede <> null"
  Set rs =  conn.execute(Sql)

  Ialt = rs("found")
  Rs.Close
  Set rs = Nothing

  Sql = "Select * from Billeder Where Lillebillede <> null"
  Set rs =  conn.execute(Sql) 

Application.Lock
Application("strHusk") = Application("strHusk")+1
Application.Unlock

if Application("strHusk")>Ialt then
Application("strHusk")=1
End if
%>

<%   
Function Show()
Response.write "<table border=""0"" width=""100%"">"
Response.write "<tr>"

    RandNum = Application("strHusk")
    rs.MoveFirst
    For i = 1 to RandNum - 1
      rs.MoveNext
    next
    id = rs("Vare_ID")
    Sql2 = "Select * from Varer Where ID=" & id
    Set rs2 =  conn.execute(Sql2)
    Response.write "HER SKRIVES BILLEDET UD"

Response.write "</tr>"
Response.write "</table>"
 
Rs.Close
Set Rs = Nothing
Rs2.Close
Set Rs2 = Nothing
Conn.Close
set Conn = Nothing   

end function

Show()
%>
---------
Jeg tror selv det er forbi den holder forbindelse åben, men jeg kan ikke se at jeg ikke "ryder" op efter mig. De 3 sider der henter billeder ud ser alle ud som ovenstående
Avatar billede oasen Nybegynder
19. januar 2003 - 19:58 #1
Prøv lige at droppe Application Lock/Unlock og se, om du stadig får fejl.
Avatar billede kimlarsen1978 Nybegynder
19. januar 2003 - 20:02 #2
Det gav ikke noget, det er på denne linie det gider fejl(Provider error '80004005'):
------
Conn.Open strDSN
------
Avatar billede oasen Nybegynder
19. januar 2003 - 20:11 #3
Hvis det er din egen server, så prøv lige at genstarte den. Access kan af og til blive ustabil, hvis den ikke bliver lukket ordentligt.
Avatar billede kimlarsen1978 Nybegynder
19. januar 2003 - 21:13 #4
Kan det evt. hjælpe at lave conn til ReadOnly? i så fald hvordan gør jeg det?
Avatar billede oasen Nybegynder
19. januar 2003 - 21:32 #5
Sql = "Select count(*) as Found from Billeder Where Lillebillede <> null"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open sql, Conn, 3, 3

Jeg kan ikke lige på stående fod huske, hvilke tal der står for hvad. Men du kan prøve at lege lidt med det og se, om der sker nogle ændringer.
Avatar billede kimlarsen1978 Nybegynder
20. januar 2003 - 13:13 #6
Desværre :-(  Jeg har både genstartet server og lavet det readonly ingen virkning... Jeg har så pørvet kun at bruge RecordSet og det vides ikke endnu om det virker...
Avatar billede kimlarsen1978 Nybegynder
20. januar 2003 - 13:16 #7
Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open "Billeder Where Lillebillede <> null", connStr, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect
  Rs.Close
  Set Rs = Nothing

  Set rs2 = Server.CreateObject("ADODB.Recordset")
  rs2.Open "Varer Where ID=" & session("id1D") & " ORDER BY ID DESC", connStr, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect
  Session("TyskVareNavn1") = rs2("Tysk_Vare_Navn")
-------------
men jeg får "File Allready in use" på linien der begynder med "rs2.Open ...."????????
Avatar billede oasen Nybegynder
20. januar 2003 - 14:09 #8
Det forstår jeg ikke umiddelbart...
Avatar billede kimlarsen1978 Nybegynder
20. januar 2003 - 20:43 #9
Er det problemet eller det jeg har skrevet du ikke forstår? :-)
Avatar billede oasen Nybegynder
20. januar 2003 - 22:05 #10
Næ, det er selve problemet. Det er formentlig et eller andet banalt, vi har overset.

Kan du have to recordset åbne på samme tid, hvis det ikke sker i funktionen?
Avatar billede kimlarsen1978 Nybegynder
21. januar 2003 - 00:14 #11
Efter jeg gik over til at prøve med RecordSets har jeg ændret koden til dette:
----------
<!--#include file="forbindelse2.asp" -->
<%
  Sql = "Select count(*) as Found from Billeder Where Lillebillede <> null"
  Set rs =  conn.execute(Sql)

  Session("Ialt") = rs("found")
  Rs.Close
  Set rs = Nothing
  Conn.Close
  set Conn = Nothing
%>

<!--#include file="forbindelse.asp" -->

<%
  Dim rs
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open "Billeder Where Lillebillede <> null", connStr, adOpenStatic, adLockReadOnly, adLockOptimistic

  Application.Lock
  Application("strHusk") = Application("strHusk")+1
  Application.Unlock

  if session("Ialt") < 0 then
  session("Ialt") = 5
  end if

  if Application("strHusk")> Session("Ialt") then
  Application("strHusk")=1
  End if
%>

<p>&nbsp;</p>

<%
  Response.write "<table border=""0"" width=""100%"">"
  Response.write "<tr>"

  RandNum = Application("strHusk")
  rs.MoveFirst
    For i = 1 to RandNum - 1
      rs.MoveNext
    next
  id = rs("Vare_ID")
   
  Dim rs2
  Set rs2 = Server.CreateObject("ADODB.Recordset")
'*************DET ER HER FEJLEN KOMMER !!! **************************
  rs2.Open "Varer Where ID=" & session("id1D") & " ORDER BY ID DESC", connStr, adOpenStatic, adLockReadOnly, adCmdTableDirect, adLockOptimistic
'********************************************************************
 
  Session("TyskVareNavn1") = rs2("Tysk_Vare_Navn")
   
  Response.write "<td width=""33%"" align=""center""><a href='vissalg.asp?Id=" & id & "'  target='salg' ><img src='../../../Rediger/aspuptest/billeder/" & rs("Lillebillede") & "' border = '0' width='160' height='120'<br><br><font face=""Tahoma"" size=""2"" style=""color: #000000""> "& Session("TyskVareNavn1") & "</a></font></td>"


Response.write "</tr>"
Response.write "</table>"
session("venD") = "test"
 
Rs.Close
Set Rs = Nothing
Rs2.Close
Set Rs2 = Nothing
ConnStr.Close
set ConnStr = Nothing
%>
------
forbindelse2.asp ser sådan her ud:
---------
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\Inetpub\wwwroot\xxx.dk\xxx.mdb; uid=; pw=;"
Set Conn = Server.CreateObject("ADODB.Connection")

Const adOpenForwardOnly2 = 0
Const adLockReadOnly2 = 1

Conn.Open strDSN, adOpenForwardOnly2, adLockReadOnly2
%>
---------
forbildelse.asp ser sådan her ud:
--------
<%
Dim connStr
connStr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\Inetpub\wwwroot\xxx.dk\xxx.mdb; uid=; pw=;"

Const adOpenForwardOnly = 0
Const adLockReadOnly = 1
Const adCmdTableDirect = &H0200
%>
------------
men jeg får "File Allready in use" på linien der begynder med "rs2.Open ...."????????
Avatar billede kimlarsen1978 Nybegynder
21. januar 2003 - 13:51 #12
Da problemstillingen har ændret sig lidt lukker jeg dette spørgsmål, men den nye problemstilling er her: http://www.eksperten.dk/spm/307868
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester