Avatar billede 5floor Nybegynder
05. marts 2005 - 16:45 Der er 2 kommentarer og
1 løsning

Gæstebog og access-database

Hej.
Roder lidt med min første ASP-gæstebog og har lidt problemer. Har nu hentet adskillige gæstebøger men problemet lader til at være det samme.
Jeg kan sagtens se startside med indtastningsfelter mv. men så snart jeg vil skrive disse data til database(guestbook.mdb) så laver den fejl.
I nuværende tilfælde siger den:

------------------------
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.
/guestbook.asp, line 36
------------------------

Jeg kan sagtens skrive til databasen manuelt(altså fra Access), men via IE virker det tydeligvis ikke.

Hvad mangler jeg at gøre med databasen så det fungerer?
Jeg har min guestbook.mdb til at ligge sammen med guestbook.asp i C:\Inetpub\wwwroot

På forhånd tak

Mads

Koden er venligst lånt af nedenstående ophavsmand.

<%
' --------------------------------------------------------------------------------
' Dette eksempel er skrevet af Dennis Knappe ( info@activeserverpages.dk )
' Eksemplet kan downloades fra http://www.activeserverpages.dk
' Scriptet kan frit anvendes til ikke kommercial brug, ønsker du at bruge scriptet
' i et kommercial sammenhæng kontakt da venligst Dennis Knappe
' --------------------------------------------------------------------------------
Const adOpenKeyset = 1
Const adLockOptimistic = 3

strMode = Request.QueryString("mode")
tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb") & ";UID=admin;PWD=;"

If Request.Form("Gem") <> "" Then
    strError = ""
    strNavn = Trim(Request.Form("Navn"))
    strEmail = Trim(Request.Form("Email"))
    strKommentar = Trim(Request.Form("Kommentar"))
    If Len(strNavn) = 0 Then
        strError = "<li>Du skal skrive dit navn!</li>"
    ElseIf validateEmail(strEmail) = False Then
        strError = "<li>Du skal skrive en gyldig e-mail adresse!</li>"
    ElseIf Len(strKommentar) = 0 Then
        strError = "<li>Du skal skrive en kommentar!</li>"
    End If
    If Len(strError) = 0 Then
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM Guestbook WHERE (ID = 0)"
        rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
        If (rs.BOF Or rs.EOF) Then
            rs.AddNew
            rs("Navn") = Server.HTMLEncode(strNavn)
            rs("Email") = Server.HTMLEncode(strEmail)
            rs("Kommentar") = Server.HTMLEncode(strKommentar)
            rs("Dato") = Now()
            rs.Update
        End If
        rs.Close
        Set rs = Nothing
    Else
        strError = "<p><ul><font color=#FF0000>" & strError & "</font></ul></p>"
        strMode = "add"
    End If
End If
%>
<html>

<head>
<title>Gæstebogen</title>
</head>

<body>
  <div align="center"><center><table border="0" width="600" cellspacing="0" cellpadding="3" style="border-left: 1px solid rgb(0,0,0); border-right: 1px solid rgb(0,0,0); border-top: 1px solid rgb(0,0,0); border-bottom: 2px solid rgb(0,0,0)">
    <tr>
      <td width="100%" bgcolor="#000000"><p><font face="verdana" size="4" color="#FFFFFF"><strong>Gæstebogen</strong></font></td>
    </tr>
    <tr>
      <td width="100%">
<%
Select Case strMode
Case "add"
%>
<form method="POST" action="guestbook.asp">
<table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr>
          <td valign="middle" align="left" colspan="2"><font face="verdana" size="2"><br>Indtast venligst oplysningerne i følgende felter:<strong>
      <%=strError%></td>
        </tr>
        <tr>
          <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">Navn</font></strong></td>
          <td valign="middle" align="left"><input type="text" name="Navn" size="40" value="<%=strNavn%>"></td>
        </tr>
        <tr>
          <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">E-mail</font></strong></td>
          <td valign="middle" align="left"><input type="text" name="Email" size="40" value="<%=strEmail%>"></td>
        </tr>
        <tr>
          <td valign="top" align="left"><div align="right"><p><strong><font face="verdana" size="2">Kommentar</font></strong></td>
          <td valign="middle" align="left"><textarea rows="3" name="Kommentar" cols="40"><%=strKommentar%></textarea></td>
        </tr>
        <tr>
          <td valign="middle" align="left" colspan="2"><br>
          <input type="submit" value="Gem" name="Gem"> <input type="button" value="Annuller" name="Annuller" onClick="java script:location.href='guestbook.asp'"></td>
        </tr>
      </table>
</form>
<%
Case Else
    strAddLine = "<p><img src=add.gif width=16 height=16>&nbsp;<a href=guestbook.asp?mode=add><strong><font face=verdana size=2>Skriv et indlæg i min gæstebog!</font></strong></a></p>"
    Response.Write strAddLine
    strSQL = "SELECT * FROM Guestbook ORDER BY Dato DESC;"
    Set myConn = Server.CreateObject("ADODB.Connection")
    myConn.Open tempConn
    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then
        Response.Write "<table width=100% border=0 cellpadding=1 cellspacing=1>"
        Do While Not rs.EOF
            dtmDato = rs("Dato")
            dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime)
            Response.Write "<tr bgcolor=#C0C0C0><td width=""100%""><font face=verdana size=2>" & dtmDato & "</td></tr>"
            If Len(rs("Email")) > 0 Then
                Response.Write "<tr><td><font face=verdana size=2><strong><a href=mailto:" & rs("Email") & ">" & rs("Navn") & "</a> skriver:</strong></td></tr>"
            Else
                Response.Write "<tr><td><font face=verdana size=2><strong>" & rs("Navn") & " skriver:</strong></td></tr>"
            End If
            Response.Write "<tr><td><font face=verdana size=2>" & rs("Kommentar") & "<br>&nbsp;</td></tr>"
            rs.MoveNext
        Loop
        Response.Write "</table>"
    Else
        Response.Write "<p><font face=verdana size=2>Der er endnu ikke nogle der har skrevet i gæstebogen</font></p>"
    End If
    myConn.Close
    Set myConn = Nothing
    Response.Write strAddLine
End Select
%>
</tr>
    <tr align="center">
      <td width="100%" bgcolor="#000000"><strong><font face="verdana" size="4"><div align="center"><center><p></font></strong><font face="Verdana" size="1" color="#FFFFFF">Dette
      eksempel er skrevet af Dennis Knappe<br>
      Eksemplet kan downloades fra <a href="http://www.activeserverpages.dk">http://www.activeserverpages.dk</a></font></td>
    </tr>
  </table>
  </center></div>
</body>
</html>
<script language="VBScript" runat="Server">
Function validateEmail(strEmail)
    validateEmail = True
    If Len(strEmail) < 6 Then
        validateEmail = False
    End If
    If InStr(1, strEmail, "@", 1) < 2 Then
        validateEmail = False
    End If
    If InStr(1, strEmail, ".", 1) = 0 Then
        validateEmail = False
    End If
    pos = InStr(1, strEmail, "@", 1)
    If pos < 2 Then
        validateEmail = False
            Else
        pos = InStr(pos+1, strEmail, "@")
        If pos > 0 Then
            validateEmail = False
        End If
    End If
End Function
</script>
Avatar billede trekkies Juniormester
05. marts 2005 - 16:55 #1
Når at du højre klikker på din mappe eller fil og vælger "egenskaber", så skulle der gerne være et faneblad ved navn "Sikkerhed", hvis ikke:
http://www.darkskies.dk/rettigheder.html

Filmen er lavet til en dansk windows.

Hvis du har fanebladet "Sikkerhed", så kan du klikke på "Avanceret", der kan du nedarve rettighederne, f.eks. der skal være flueben i den første box, nede i bunden, med teksten: "Arv de tilladelsesposter, der gælder for underobjekter, fra det overordnede objekt. Medtag disse sammen med de poster, der er udtrykkeligt defineret her."

Håber at du kan bruge dette her.
Avatar billede 5floor Nybegynder
05. marts 2005 - 17:43 #2
Hey Trekkies.
Det var jo lige det - læg et svar så får du point.
God weekend
Mads
Avatar billede trekkies Juniormester
05. marts 2005 - 17:47 #3
Glad for at kunne hjælpe dig.

Du kan også have en god weekend :>
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