Avatar billede annettef Nybegynder
08. februar 2005 - 08:28 Der er 8 kommentarer og
1 løsning

Problemer med databaseforbindelse - forkert sti

Hej

Jeg sidder og arbejder på en webshop, men har fået problemer med min databaseforbindelse - dvs. stien til databasen bliver forkert.

Jeg bruger en include fil til at oprette forbindelse til min database.

Include filen dbconn.inc
::::START::::
<%
' Filnavn: dbconn.inc

' Databaseforbindelse - husk at angive den rigtige sti til databasen!
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../db/shop1.mdb")
Conn.Open DSN
%>
::::SLUT::::

Selve shoppen ligger i mappen [www]. I samme niveau ligger mappen [db] hvori min database ligger. Nu er mit problem så at jeg sagtens kan hente oplysninger om varerne ud fra databasen, men når jeg vil lægge en vare i indkøbsvognen, så kommer der følgende fejl:
::::START::::
Microsoft JET Database Engine error '80004005'

'C:\dnd-www\q-dvd.dk\www\db\shop1.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

/tilfoj.asp, line 42
::::SLUT::::

Stien til databasen bliver af en eller anden grund forkert. Den skulle være 'C:\dnd-www\q-dvd.dk\db\shop1.mdb'. Men på en eller anden måde kommer mappen [www] ind i stien.

Filen tilfoj.asp ser ud på denne måde
::::START::::
<%@ Language=VBScript %>
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<!-- #include file="db.asp" -->
<%   
    Sub CreateNewOrder()
        Application.lock
        if Application("orderID") = "" then
            Application("orderID") = 1
        end if
     
       
      intOrderID = Application("orderID")
      Session("orderID") = intOrderID
      Conn.Execute("INSERT INTO ordre " _
        & " (orderID, status) values " _
        & " ("&intOrderID&", 'OPEN')")
       
        Application("orderID") = Application("orderID") + 1
      Application.Unlock
    End Sub

    Sub AddToOrder(nOrderID, nVareId, nQuant, nTitel, nBeskriv, nModel, nPris, nVaegt)
  sqlText = "INSERT INTO ordrelinie " _
  & " (orderID, vareid, antal, titel, beskriv, model, pris, vaegt) values " _
  & " ("&nOrderID&", "&nVareId&", "&nQuant&", '"&nTitel&"', '"&nBeskriv&"', '"&nModel&"', "&nPris&", "&nVaegt&")"
  'response.write "SQL: "& sqlText
  Conn.Execute(sqlText)
End Sub

 
   
    'Main program
    intVareId = Request.form("intVareId")
    intAntal = Request.form("intAntal")
    strTitel = Request.form("strTitel")
    strBeskriv = Request.form("strBeskriv")
    strModel = Request.form("strModel")
    intPris = Request.form("intPris")
    intVaegt = Request.form("intVaegt")

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
    if intOrderID = "" then
      CreateNewOrder
    end if

    sqlText = "SELECT * FROM ordrelinie WHERE orderID =" & intOrderID & " AND vareid =" & intVareID
    set rsOrder = Conn.Execute(sqlText)
   
    if rsOrder.EOF then 'meddelelse som popper op når brugerne lægger en vare i inskøbsvognen
        txtInfo = "<p>Den valgte vare er tilføjet til din indkøbsvogn.</p>" 
        AddToOrder intOrderID, intVareId, intAntal, strTitel, strBeskriv, strModel, intPris, intVaegt
    else
        txtInfo = "<p>Varen er allerede i din indkøbsvogn.<br>Vil du købe flere af varen, kan antallet ændres i indkøbsvognen.</p>"
    end if
   

%>

<!-- #include file="adovbs.inc" -->
<html>
<head>
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
<title>tilf&oslash;j varer til kurv</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
.style2 {
    font-size: 10;
    font-weight: bold;
}
-->
</style>
</head>
<body >
<br>
<table width="670" border="0" cellspacing="0">
  <tr bgcolor="#545DB9">
    <td colspan="2" >&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="center"><br>
    <%= txtInfo %>
    &nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="center">
    <a href="vis_varer.asp?intVareId=<%= intVareId %>" target="tekst"><img src="grafik/tilbage_knap.gif" alt="Tilbage" border="0" name="tilbage" ></a>&nbsp;&nbsp;
    <a href="vis_vogn.asp?intVareId=<%= intVareId %>" target="tekst"><img src="grafik/vis_vogn_kasse.gif" alt="Vis vogn/Gå til kassen" border="0" name="visvogn" ></a>&nbsp;
    </td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>


<%
' Luk forbindelse fra dbconn.inc
Conn.Close
Set Conn = Nothing
%>

</body>
</html>
::::SLUT::::

Linie 42 er følgende:
38    intPris = Request.form("intPris")
39    intVaegt = Request.form("intVaegt")
40
41      set Conn = Server.CreateObject("ADODB.Connection")
42      Conn.Open ConString
43
44      intOrderID = cstr(Session("orderID"))

Jeg kan ikke gennemskue hvorfor fejlen opstår, så jeg håber der er andre der kan hjælpe mig!

/Annette

P.S. Siden kan ses på www.q-dvd.dk - det gør det måske lidt nemmere at forstå fejlen. Fejlen opstår når man har valgt en vare og klikker på "tilføj til vogn"
Avatar billede michael_stim Ekspert
08. februar 2005 - 08:35 #1
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../db/shop1.mdb")
Ser ikke ud til at du kommer helt tilbage. Pröv med denne.
Avatar billede annettef Nybegynder
08. februar 2005 - 09:07 #2
Hvis jeg sætter ../ ind så kommer jeg for langt tilbage

Microsoft JET Database Engine error '80004005'

'C:\dnd-www\db\shop1.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

/dbconn.inc, line 7

så det hjælper desværre ikke ret meget...
Avatar billede michael_stim Ekspert
08. februar 2005 - 09:15 #3
Det er ikke sådan at du har den fil hvor du lägger data til i tabellen, i en mappe for sig selv (admin eller lign.), og den fil der du hiver data ud fra tabellen udenfor den mappe?
Avatar billede annettef Nybegynder
08. februar 2005 - 09:27 #4
Jo, jeg har en mappe [admin] som ligger inde i mappen [www]. I den mappe har jeg hele mit administrationssystem hvor jeg lægger nye varer ind og sletter varer.

Så den fil jeg lægger data ind med ligger ikke i samme mappe som den fil jeg trækker data ud med.
Avatar billede michael_stim Ekspert
08. februar 2005 - 09:31 #5
Så må du enten lägge den i samme niveau som den anden, eller have en anden includefil, eller bruge fuldständig sti.
Avatar billede michael_stim Ekspert
08. februar 2005 - 09:33 #6
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dnd-www\q-dvd.dk\db\shop1.mdb"
Avatar billede annettef Nybegynder
08. februar 2005 - 09:43 #7
ok - det prøver jeg lige
Avatar billede annettef Nybegynder
08. februar 2005 - 11:44 #8
Så har jeg fundet fejlen - det var fordi jeg havde glemt at rette stien i en anden databaseforbindelse som jeg også bruger.

Så læg et svar, så får du point!

/Annette
Avatar billede michael_stim Ekspert
08. februar 2005 - 13:00 #9
Godt at det virker ;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