Avatar billede c-lund Nybegynder
10. december 2002 - 19:24 Der er 20 kommentarer og
1 løsning

Opdater database

Den skal opdatere et record samt poste det før, så man kan rette i den tekst der er i feltet i forevejen.

Jeg har tager et script fra et ligende spørgsmål herinde, men jeg kan ikke hitte ud af at få det tilpasset efter min database.

Scripet hedder opdater.asp
databasen hedder main
------------------------------------------
jeg har prøvet at rette lidt idet, men uden held.

jeg for denne fejltype:
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'Conn'
/Temp/Ny mappe/opdater.asp, line 27



<html>

<head>


<%
if request.servervariables("REQUEST_METHOD") = "POST" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("Database.mdb")
Conn.Open DSN

strSQL="update main set "
strSQL=strSQL & "linkname='" & Request.Form("linkname") & "', "
strSQL=strSQL & "beskrivelse='" & Request.Form("beskrivelse") & "', "
strSQL=strSQL & "linkurl='" & Request.Form("linkurl") & "'"
strSQL=strSQL & "Where ID=" & Cstr(Session("ID"))

Set rs = Conn.Execute(strSQL)
end if

%>


<%
SQL = "SELECT * FROM main WHERE ID = " & Request.Querystring("ID")
Set rs = Conn.Execute(SQL)
%>


<form method="POST" action="HVAD SKAL DER STÅ HER, HVILKEN FIL??????">

<table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr valign="top">
          <td valign="middle" align="left" colspan="2"><br>Opdater venligst oplysningerne i følgende felter:<strong>
      <%=strError%></td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Overskrift: </b></td>
          <td valign="middle" align="left">
<input type="text" name="Overskrift" size="40" value="<%Response.Write("Overskrift")%>"></td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Nyhed: </b></td>
          <td valign="middle" align="left">
<textarea rows="10" name="Nyhed" cols="40"><%Response.Write("Nyhed")%></textarea>
</td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Skrevet af:</b></td>
          <td valign="middle" align="left">
<input type="text" name="SkrevetAf" size="40"value="<%Response.Write("SkrevetAf")%>">
</td>
        </tr>
        <tr>
          <td><p align="center"><br>
          <input type="submit" value="Gem" name="Opdater"> <input type="button" value="Annuller" name="Annuller"

onClick="java script:location.href='elevpost.asp'"></p></td>
        </tr>
      </table>
</form>


</head>


<body>
</body>
</html>
Avatar billede eagleeye Praktikant
10. december 2002 - 19:30 #1
Det er fordu du åbner kun for connection når du gemmer data og så fejler den når du vil hendte og vise data så prøv at flytte lidt rundt på disse linier:

<%
if request.servervariables("REQUEST_METHOD") = "POST" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("Database.mdb")
Conn.Open DSN



Så det kommer til at se sådan her ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("Database.mdb")
Conn.Open DSN

if request.servervariables("REQUEST_METHOD") = "POST" then
Avatar billede c-lund Nybegynder
10. december 2002 - 19:32 #2
nu kom der så en ny felj 10 linier længere nede:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
Avatar billede eagleeye Praktikant
10. december 2002 - 19:34 #3
Hvilken linie er det?

Samt kommer fejlen når du opdater eller når siden vises?
Avatar billede c-lund Nybegynder
10. december 2002 - 19:38 #4
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
/Temp/Ny mappe/opdater.asp, line 33

når sidens vises
Avatar billede eagleeye Praktikant
10. december 2002 - 19:40 #5
Ok så det nok denne linie:

SQL = "SELECT * FROM main WHERE ID = " & Request.Querystring("ID")

Det er fordi du ikke overføre ID til siden via Querystring (linket) fil.asp?id=345634

Jeg kan se på den anden SQL sætning du har ID på brugere i Session("ID") så prøv at rette SQL til:

SQL = "SELECT * FROM main WHERE ID = " & Session("ID")
Avatar billede coltau Juniormester
10. december 2002 - 19:41 #6
Der er alt for mange fejl i scriptet. Det skal skrives helt om.
Avatar billede c-lund Nybegynder
10. december 2002 - 19:44 #7
nu har jeg rettet den, men for denne fejltype

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F6)
'End' var ventet
/Temp/Ny mappe/opdater.asp, line 62


har lige et spørgsmål.
<form method="POST" action="HVAD SKAL DER STÅ HER, HVILKEN FIL???">

og en anden ting er at den ID der skal bruges skal hentes fra denne login fil.
<html>
<body>

<%


Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
    Conn.Open DSN

    if request("mode") = "" then
        if request("err") = 1 then
            response.write "Fejl i login, prøv igen.<br><br>"
        end if
%>

<form method="POST" action="?mode=check">
Brugernavn: <input type="text" name="bruger">
Pass : <input type="password" name="pass">
<input type="submit" value="Login">
</form>

<%
 


elseif request("mode") = "check" then
        bruger = request.form("bruger")
        pass = request.form("pass")
   
SQL = "select * from links where bruger='" & bruger & "' and pass='" & pass & "'"
        set check = conn.Execute(SQL)
   
      if check.bof or check.eof then
            response.redirect "login.asp?err=1"
        else
            session("id") = check("id")
   
            response.redirect "******.asp"
        end if
end if
 
%>

</body>
Avatar billede eagleeye Praktikant
10. december 2002 - 19:50 #8
Prøv at lave koden om til dette :



<html>
<head></head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("Database.mdb")
Conn.Open DSN

if request.servervariables("REQUEST_METHOD") = "POST" then
  strSQL="update main set "
  strSQL=strSQL & "linkname='" & Request.Form("linkname") & "', "
  strSQL=strSQL & "beskrivelse='" & Request.Form("beskrivelse") & "', "
  strSQL=strSQL & "linkurl='" & Request.Form("linkurl") & "'"
  strSQL=strSQL & "Where ID=" & Cstr(Session("ID"))

  'Gemmer/oppdater data i databasen
  Conn.Execute(strSQL)
end if
%>

<%
SQL = "SELECT * FROM main WHERE ID = " & Session("ID")
Set rs = Conn.Execute(SQL)
%>

<% 'Hvis du skriver action="" så loader den samme fil igen. %>
<form method="POST" action="">

<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr valign="top">
<td valign="middle" align="left" colspan="2"><br>Opdater venligst oplysningerne i følgende felter:<strong></td>
</tr>
<tr valign="top">
  <td align="right"><p><b>Overskrift: </b></td>
  <td valign="middle" align="left">
<input type="text" name="Overskrift" size="40" value="<%=rs("Overskrift")%>"></td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Nyhed: </b></td>
          <td valign="middle" align="left">
<textarea rows="10" name="Nyhed" cols="40"><%=rs("Nyhed")%></textarea>
</td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Skrevet af:</b></td>
          <td valign="middle" align="left">
<input type="text" name="SkrevetAf" size="40"value="<%=rs("SkrevetAf")%>">
</td>
        </tr>
        <tr>
          <td><p align="center"><br>
          <input type="submit" value="Gem" name="Opdater"> <input type="button" value="Annuller" name="Annuller"

onClick="java script:location.href='elevpost.asp'"></p></td>
        </tr>
      </table>
</form>

</body>
</html>
Avatar billede c-lund Nybegynder
10. december 2002 - 19:56 #9
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
/Temp/Ny mappe/opdater1.asp, line 24

men hvordan føre jeg ID vidre fra login.asp til opdater.asp
Avatar billede c-lund Nybegynder
10. december 2002 - 19:58 #10
nu henter den dataerne frem, men den vil ikke gemme igen
Avatar billede eagleeye Praktikant
10. december 2002 - 20:08 #11
Hendter den data rigtigt for en bruger for så ligger ID for brugeren i Session("ID")
Avatar billede c-lund Nybegynder
10. december 2002 - 20:13 #12
den data der kommer frem, er den rigtige, men når man trykke gem, siger den fejl.
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.
/Temp/ny mappe/opdater1.asp, line 18
Avatar billede eagleeye Praktikant
10. december 2002 - 20:23 #13
Det er fordi enten den folder hvor databasen eller selve database er skrive beskyttet. Det kan også for NT/2000 være fordi IUSR_MASHINENAME eller Internet Guest Account ikke har skrive rettighed til folderen..:

http://activedeveloper.dk/aspdigital/kapitel2/updateable_query.asp
Avatar billede c-lund Nybegynder
10. december 2002 - 20:32 #14
nu køre jeg det over inetpub, men når jeg vil slå skrivebeskyttet fra, og trykker ok. og derefter kigger igen, er den stadig slået til. hvordan slår jeg den fra
Avatar billede eagleeye Praktikant
10. december 2002 - 20:36 #15
Hvilket OS køre du med?
Avatar billede c-lund Nybegynder
10. december 2002 - 20:37 #16
windows xp pro
Avatar billede eagleeye Praktikant
10. december 2002 - 20:45 #17
ARh ja der er noget specielt med XP...

Der var engang en artikel som beskrev noget omkring XP ... men den er vist lukket nu.
http://www.kbcenter.com/kb.php?u_action=view_kb&kb_id=6164&category_id=255
Avatar billede c-lund Nybegynder
10. december 2002 - 20:46 #18
ja, den er lukket
Avatar billede eagleeye Praktikant
10. december 2002 - 20:51 #19
I 2000 skal man højre klikke på folderen og vælge security tilføje brugeren Internet Guest Account til foldren og give den account skrive/write rettighed.
Avatar billede c-lund Nybegynder
10. december 2002 - 20:54 #20
sådan er det vist ikke i xp
Avatar billede eagleeye Praktikant
10. december 2002 - 21:02 #21
Prøv at se her:

http://www.webwizguide.info/asp/faq/server_permissions.asp

Og læs først helt ned i bunden..
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