Avatar billede cool_casper Nybegynder
25. marts 2004 - 17:52 Der er 4 kommentarer og
1 løsning

Lave connection ind inde i connnection

Hej,

Jeg har en side hvor jeg laver en connections til min Access database for at få nogle informationer.
Halvejs nede på siden skal jeg lave et recordset fordi jeg skal lave paging på display af nogle produkter.
Men det kan jeg jo ikke når filen er åben (Could not use ''; file already in use.)
Hvordan gør jeg ?

Koden ser således ud, men den melder somsagt fejl..:
<!--#include file="incl/functions.asp"-->
<!--#include file="incl/dbconn.asp"-->
<%
Session.LCID = 1030
Response.Write HtmlStart(strPageTitle,"bgcolor=""#000000""")

intCountry = Request("country")
If intCountry = "" OR intCountry = 0 then intCountry = 5

intType = Request("type")
If intType = "" OR intType = 0 then
    strSQL =         "SELECT TOP 1 Type.TypeID AS Id"
    strSQL = strSQL &     " FROM ((Vin LEFT JOIN Area ON Vin.VinAreaID = Area.AreaID)"
    strSQL = strSQL &     " LEFT JOIN Country ON Area.AreaCountryID = Country.CountryID)"
    strSQL = strSQL &     " LEFT JOIN Type ON Vin.VinTypeID = Type.TypeID"
    strSQL = strSQL &     " WHERE Country.CountryID = " & intCountry
    strSQL = strSQL &     " GROUP BY Type.TypeID, Type.TypeName"
    strSQL = strSQL &     " ORDER BY Type.TypeName"
    Set objCheck2 = objConn.Execute(strSQL)
    If NOT objCheck2.EOF then
        intType = objCheck2("Id")   
    Else
        intType = 0
    End if
End if

intID = Request("id")
If intID = "" OR intID = 0 then
    strSQL =         "SELECT TOP 1"
    strSQL = strSQL &     " Vin.VinID AS Id"
    strSQL = strSQL &     " FROM (Vin LEFT JOIN Area ON Vin.VinAreaID = Area.AreaID) LEFT JOIN Country ON Area.AreaCountryID = Country.CountryID"
    strSQL = strSQL &     " WHERE Country.CountryID = " & intCountry
    strSQL = strSQL &     " AND Vin.VinTypeID = " & intType
    Set objCheck2 = objConn.Execute(strSQL)
    If NOT objCheck2.EOF then
        intID = objCheck2("Id")
    Else
        intID = 0
    End if
End if

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If


Response.Write Table(0,"width=""100%"" style=""color:white;"" bgcolor=""#901020""")
Response.Write "<tr>"
    Response.Write "<td><img src=""images/ov_vine.gif""></td>"
Response.Write "</tr>"
Response.Write "<tr>"
    Response.Write "<td width=""100%"" colspan=""2"">"
    Response.Write Countries()
    Response.Write "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
    Response.Write "<td>"
   
    strSQL =         "SELECT "
    strSQL = strSQL &     "Area.AreaDesc AS Desc1, Area.AreaPic AS Pic"
    strSQL = strSQL &     " FROM (Vin LEFT JOIN Area ON Vin.VinAreaID = Area.AreaID) LEFT JOIN Country ON Area.AreaCountryID = Country.CountryID"
    strSQL = strSQL &     " WHERE Vin.VinID = " & intID
    Set objArea = objConn.Execute(strSQL)
    If NOT objArea.EOF then
        Response.Write Table(0,"width=""100%"" style=""color:white;""")
            Response.Write "<tr>"
                Response.Write "<td>"
                Response.Write "<div style=""overflow:auto; width:100%; height:175;"">"
                If NOT objArea("Pic") = "" then
                    Response.Write "<img src=""images/" & objArea("Pic") & """ align=""left"">"
                Else
                    Response.Write "<img src=""images/spacer.gif"" width=""236"" height=""111"" align=""left"">"
                End if
                Response.Write Font("Verdana",1,"#FFFFFF") & "<b>" & objArea("Desc1") & "</b>" & EndFont()
                Response.Write "</div>"
                Response.Write "</td>"
            Response.Write "</tr>"
        Response.Write EndTable()   
    End if
    Response.Write "</td>"
    Response.Write "<td rowspan=""3"" valign=""top"">"
        Response.Write ProdPic(intID)
        Response.Write Table(0,"")
        Response.Write "<tr>"
            Response.Write "<td></td>"
        Response.Write "</tr>"
        Response.Write EndTable()
    Response.Write "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
    Response.Write "<td>"
        Response.Write Types()
    Response.Write "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
    Response.Write "<td>"

        Set objVin = Server.CreateObject("ADODB.RecordSet")
       
        strSQL =         "SELECT "
        strSQL = strSQL &     "Vin.VinID AS Id, Vin.VinName AS Name, Vin.VinPrice AS Price, Vin.VinYear AS Year1, Area.AreaName AS AreaName"
        strSQL = strSQL &     " FROM (Vin LEFT JOIN Area ON Vin.VinAreaID = Area.AreaID) LEFT JOIN Country ON Area.AreaCountryID = Country.CountryID"
        strSQL = strSQL &     " WHERE Country.CountryID = " & intCountry
        strSQL = strSQL &     " AND Vin.VinTypeID = " & intType
       
        strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDatabasePath
        objVin.Open strSQL, strDSN
       
        If NOT objVin.EOF then
            Set objSettings = objConn.Execute("SELECT SettingsProductAmount As ProductAmount FROM Settings")
            If NOT objSettings.EOF then
                strPageSize = CInt(objSettings("ProductAmount"))
            Else
                strPageSize = 10
            End if
            objVin.PageSize = strPageSize
            objVin.AbsolutePage = intPage
            intRecCount = objVin.PageSize
            intPageCount = objVin.PageCount
       
            Response.Write RoundTable2(0,"width=""100%"" bgcolor=""#FBDC78""")
                intCount = 0
                While NOT objVin.EOF And intRecCount > 0
                    ekstra = ""
                    bgcolor = "#FFFFFF"
                    Response.Write "<tr>"
                        If intCount = 0 then ekstra = " border-top: 1px solid black;"
                        If CInt(intID) = CInt(objVin("Id")) then bgcolor = "#FBDC78"
                        Response.Write "<td colspan=""3"" style=""border-bottom: 1px solid black;" & ekstra & """ bgcolor=""" & bgcolor & """>"
                        Response.Write Table(0,"width=""100%""")
                        Response.Write "<tr><td style=""font-size:12px;"">"
                        Response.Write "<a href=""?country=" & intCountry & "&type=" & intType & "&page=" & intPage & "&id=" & objVin("Id") & """>"
                        Response.Write Font("Verdana",0,"#000000") & objVin("AreaName")
                        Response.Write ", " & objVin("Name") & " "
                        If NOT objVin("Year1") = "0" then
                            Response.Write objVin("Year1")
                        End if
                        Response.Write EndFont()
                        Response.Write "</a>"
                        Response.Write "</td>"
                        Response.Write "<td align=""right"" style=""font-size:12px;"">"
                            Response.Write Font("Verdana",0,"black") & FormatPrice(objVin("Price")) & EndFont()
                        Response.Write "</td>"
                        Response.Write "</tr>"
                        Response.Write EndTable()
                    Response.Write "</tr>"
                    intRecCount = intRecCount - 1
                    intCount = intCount + 1
                objVin.Movenext()
                Wend
            If Clng(intPage) < Clng(intPageCount) then
                strPagingEnd = "<img src=""images/spacer.gif"" width=""75"" height=""1""><a href=""vine.asp?country=" & intCountry & "&type=" & intType & "&page=" & intPage + 1 & "&id=" & intID & """ style=""font-size:11px;"">" & Font("Verdana",0,"#000000") & "FREM &gt;&gt;" & EndFont() & "</a>"
            Else
                strPagingEnd = "<span style=""font-size:11px;""><img src=""images/spacer.gif"" width=""75"" height=""1"">FREM &gt;&gt;</span>"
            End if
           
            If Clng(intPage) > 1 Then
                strPagingStart = "<a href=""vine.asp?country=" & intCountry & "&type=" & intType & "&page=" & intPage - 1 & "&id=" & intID & """ style=""font-size:11px;"">" & Font("Verdana",0,"#000000") & "&lt;&lt; TILBAGE" & EndFont() & "</a><img src=""images/spacer.gif"" width=""75"" height=""1"">"
            Else
                strPagingStart = "<span style=""font-size:11px;"">&lt;&lt; TILBAGE<img src=""images/spacer.gif"" width=""75"" height=""1""></span>"
            End if
            Response.Write EndRoundTable2(Font("Verdana",1,"#000000") & strPagingStart & "<a href=""betingelser.asp"" style=""font-size:11px;"">" & Font("Verdana",1,"#000000") & "Salgs- og leveringsbetingelser</a>" & strPagingEnd & EndFont())
            objVin.Close()
            Set objVin = Nothing
        Else
            Response.Write "<tr><td>" & Font("Verdana",2,"#FFFFFF") & "<b>Der findes desværre ingen produkter i kataloget der er tilknyttet det valgte land</b>" & EndFont() & "</td></tr>"
        End if
       
    Response.Write "</td>"
Response.Write "</tr>"
Response.Write EndTable()

Response.Write HtmlStop()
%>
Avatar billede nute Nybegynder
25. marts 2004 - 18:00 #1
skift denne linie:

objVin.Open strSQL, strDSN

med denne:

Set objVin= objConn.Execute( strSQL )

/nute
Avatar billede cool_casper Nybegynder
25. marts 2004 - 18:02 #2
ADODB.Recordset error '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

/bendix/vine.asp, line 118

>>

118: objVin.AbsolutePage = intPage
Avatar billede eagleeye Praktikant
25. marts 2004 - 18:32 #3
Prøv at rette disse to:

        strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDatabasePath
        objVin.Open strSQL, strDSN

Til denne ene du har jo en objConn til databasen:

        objVin.Open strSQL, Conn, 1
Avatar billede cool_casper Nybegynder
13. april 2004 - 10:35 #4
Kan ikke huske om det hjalp, men spørgsmålet skal jo lukkes! :o)
God påske.. :D

Svar?
Avatar billede cool_casper Nybegynder
25. april 2004 - 14:40 #5
All right then.. :o)
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