Opdatering af database
Hej!Jeg er ved at lave en side på en database, hvor det skal være muligt at ændre i bestemt post i databasen.
Koden er:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Videodatabase.asp" -->
<%
' *** Edit Operations: declare variables
MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Update Record: set variables
If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
MM_editConnection = MM_Videodatabase_STRING
MM_editTable = "Videodatabase"
MM_editColumn = "Titel"
MM_recordId = "'" + Request.Form("MM_recordId") + "'"
MM_editRedirectUrl = "opdater.asp"
MM_fieldsStr = "Nummer|value|Titel|value|Land|value|Aar|value|Instruktoer|value|Skuespillere|value|Billede|value"
MM_columnsStr = "Nummer|',none,''|Titel|',none,''|Land|',none,''|Aar|',none,''|Instruktoer|',none,''|Skuespillere|',none,''|Billede|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Update Record: construct a sql update statement and execute it
If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
' create the sql update statement
MM_editQuery = "update " & MM_editTable & " set "
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
FormVal = MM_fields(i+1)
MM_typeArray = Split(MM_columns(i+1),",")
Delim = MM_typeArray(0)
If (Delim = "none") Then Delim = ""
AltVal = MM_typeArray(1)
If (AltVal = "none") Then AltVal = ""
EmptyVal = MM_typeArray(2)
If (EmptyVal = "none") Then EmptyVal = ""
If (FormVal = "") Then
FormVal = EmptyVal
Else
If (AltVal <> "") Then
FormVal = AltVal
ElseIf (Delim = "'") Then ' escape quotes
FormVal = "'" & Replace(FormVal,"'","''") & "'"
Else
FormVal = Delim + FormVal + Delim
End If
End If
If (i <> LBound(MM_fields)) Then
MM_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(i) & " = " & FormVal
Next
MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId
If (Not MM_abortEdit) Then
' execute the update
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<%
Dim opdater__MMColParam
opdater__MMColParam = "1"
if (Request.QueryString("opdater") <> "") then opdater__MMColParam = Request.QueryString("opdater")
%>
<%
set opdater = Server.CreateObject("ADODB.Recordset")
opdater.ActiveConnection = MM_Videodatabase_STRING
opdater.Source = "SELECT * FROM Videodatabase WHERE Titel = '" + Replace(opdater__MMColParam, "'", "''") + "'"
opdater.CursorType = 0
opdater.CursorLocation = 2
opdater.LockType = 3
opdater.Open()
opdater_numRows = 0
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="Css/Css.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1">
<p> Nummer:
<input type="text" name="Nummer" value="<%=(opdater.Fields.Item("Nummer").Value)%>">
</p>
<p> Titel:
<input type="text" name="Titel" value="<%=(opdater.Fields.Item("Titel").Value)%>">
</p>
<p>Land:
<input type="text" name="Land" value="<%=(opdater.Fields.Item("Land").Value)%>">
</p>
<p>År:
<input type="text" name="Aar" value="<%=(opdater.Fields.Item("Aar").Value)%>">
</p>
<p>Instruktør:
<input type="text" name="Instruktoer" value="<%=(opdater.Fields.Item("Instruktoer").Value)%>">
</p>
<p>Skuespillere:
<textarea name="Skuespillere" rows="20" cols="50"><%=(opdater.Fields.Item("Skuespillere").Value)%></textarea>
</p>
<p>Billeder:
<input type="text" name="Billede" value="<%=(opdater.Fields.Item("Billede").Value)%>">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
<input type="hidden" name="MM_recordId">
<input type="hidden" name="MM_update" value="true">
<input type="hidden" name="MM_recordId" value="<%= opdater.Fields.Item("Titel").Value %>">
</form>
</body>
</html>
<%
opdater.Close()
%>
Når jeg så klikker "Submit", kommer følgende fejlmeddelelse:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.
/Videodatabase/opdater.asp, line 89
Håber nogen kan finde fejlen. Det hele er lavet i dreamweaver. Jeg vil gerne være fri for at skulle ind i Access for at opdatere databasen.
