Update med ASP (Dreamweaver)
Hej..Jeg får følgende fejl når jeg trykker submit i nedenstående kode...
---------------------
Fejl
---------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/enmulighed/administration/applicants_new_detail.asp, line 112
---------------------
Kode
---------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/ConnApplicants.asp" -->
<%
' *** Edit Operations: declare variables
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd
Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId
Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
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")) = "newapplicant" And CStr(Request("MM_recordId")) <> "") Then
MM_editConnection = MM_ConnApplicants_STRING
MM_editTable = "applicants"
MM_editColumn = "ID"
MM_recordId = "" + Request.Form("MM_recordId") + ""
MM_editRedirectUrl = "applicants_new.asp"
MM_fieldsStr = "title|value|firstname|value|middlename|value|lastname|value|sex|value|address|value|zipcode|value|city|value|country|value|phone|value|fax|value|mobilephone|value|email|value|dob|value|starttime|value|duration|value|education1|value|education2|value|education3|value|work1|value|work1start|value|work1end|value|work2|value|work2start|value|work2end|value|work3|value|work3start|value|work3end|value|leisureactivity|value|languages|value|other|value|password|value|date|value|mailinglist|value|terms|value|statuslevel|value"
MM_columnsStr = "title|',none,''|firstname|',none,''|middlename|',none,''|lastname|',none,''|sex|',none,''|address|',none,''|zipcode|',none,''|city|',none,''|country|',none,''|phone|',none,''|fax|',none,''|mobilephone|',none,''|email|',none,''|dob|',none,''|starttime|',none,''|duration|',none,''|education1|',none,''|education2|',none,''|education3|',none,''|work1|',none,''|work1start|',none,''|work1end|',none,''|work2|',none,''|work2start|',none,''|work2end|',none,''|work3|',none,''|work3start|',none,''|work3end|',none,''|leisureactivity|',none,''|languages|',none,''|other|',none,''|password|',none,''|date|',none,NULL|mailinglist|none,none,NULL|terms|none,none,NULL|statuslevel|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_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 MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_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
%>
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="../index.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
<%
Dim RecDetail__MMColParam
RecDetail__MMColParam = "1"
If (Request.QueryString("ID") <> "") Then
RecDetail__MMColParam = Request.QueryString("ID")
End If
%>
<%
Dim RecDetail
Dim RecDetail_numRows
Set RecDetail = Server.CreateObject("ADODB.Recordset")
RecDetail.ActiveConnection = MM_ConnApplicants_STRING
RecDetail.Source = "SELECT * FROM applicants WHERE ID = " + Replace(RecDetail__MMColParam, "'", "''") + ""
RecDetail.CursorType = 0
RecDetail.CursorLocation = 2
RecDetail.LockType = 1
RecDetail.Open()
RecDetail_numRows = 0
%>
<html>
<head>
<title>Velkommen til enMulighed</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body background="../images/background.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!-- #BeginLibraryItem "/Library/topsite_top_blank.lbi" -->
<link href="../stylesheet.css" rel="stylesheet" type="text/css">
<table width="740" height="81" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="335" height="81" rowspan="2"><img src="../flash/flash_corner.jpg" width="335" height="81"></td>
<td width="405" height="60"><img src="../images/logo_main.gif" width="261" height="44"></td>
</tr>
<tr>
<td width="405" height="21">
<div align="right">
<p align="right" class="topsite-tekst"> </p>
</div></td>
</tr>
</table>
<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/Library/topsite_flash_blank.lbi" --><table width="740" height="102" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="740" height="102">
<param name="movie" value="../flash/flash_blank.swf">
<param name="quality" value="high">
<embed src="../flash/flash_blank.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="740" height="102"></embed></object></td>
</tr>
</table><!-- #EndLibraryItem --><!-- #BeginLibraryItem "/Library/topsite_menu_admin.lbi" -->
<link href="../stylesheet.css" rel="stylesheet" type="text/css">
<table width="740" height="19" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="15"><img src="../images/menu_orange_left.gif" width="15" height="19"></td>
<td colspan=3 width="658" valign="middle" bgcolor="#000000">
<div align="center" class="topsite-menu-tekst">
: <a href="admin_dk.asp"><font color="#FFFFFF">Dansk site</font></a>
: <a href="admin_uk.asp"><font color="#FFFFFF">English site</font></a>
: <a href="applicants.asp"><font color="#FFFFFF">Applicants</font></a>
: <a href="admin_logout.asp"><font color="#FFFFFF">Logout</font></a> :</div>
</td>
<td width="67"><img src="../images/menu_orange_right.gif" width="67" height="19"></td>
</tr>
</table>
<!-- #EndLibraryItem --><table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><img src="../images/spacer.gif" width="1" height="1"></td>
</tr>
</table>
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" bgcolor="DAE3E3" valign="top"> <!-- #BeginLibraryItem "/Library/submenu_admin_applicants.lbi" -->
<link href="../stylesheet.css" rel="stylesheet" type="text/css">
<table width="185" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="6%" height="25"> </td>
<td width="94%" height="25"> </td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"><a href="applicants.asp" class="submenu-tekst">Home</a></td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"><a href="applicants_new.asp" class="submenu-tekst">New applicants</a></td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"><a href="applicants_approved.asp" class="submenu-tekst">Approved applicants</a></td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"> </td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"> </td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"> </td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"> </td>
</tr>
<tr>
<td width="6%" height="20"><img src="../images/other_circle_dark.gif"></td>
<td width="94%" height="20"> </td>
</tr>
</table></td>
</tr>
</table>
<!-- #EndLibraryItem --></td>
<td width="75%" valign="top">
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td valign="top" width="5%"><img src="../images/logo_small.gif" align="absmiddle"></td>
<td valign="top" width="95%"><p class="overskrift-1-grey">ADMINISTRATION
- NEW APPLICANTS</p>
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="newapplicant">
<br>
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="116" class="tekst-bold">ID</td>
<td width="7"> </td>
<td width="365" class="tekst"><%=(RecDetail.Fields.Item("ID").Value)%>
</td>
</tr>
<tr>
<td width="116" class="tekst-bold">Title</td>
<td width="7"> </td>
<td width="365"> <input name="title" type="text" class="tekst" id="title" value="<%=(RecDetail.Fields.Item("title").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold"><p>Firstname</p></td>
<td width="7"> </td>
<td width="365"> <input name="firstname" type="text" class="tekst" id="firstname" value="<%=(RecDetail.Fields.Item("firstname").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Middlename</td>
<td width="7"> </td>
<td width="365"> <input name="middlename" type="text" class="tekst" id="middlename" value="<%=(RecDetail.Fields.Item("middlename").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Lastname</td>
<td width="7"> </td>
<td width="365"> <input name="lastname" type="text" class="tekst" id="lastname" value="<%=(RecDetail.Fields.Item("lastname").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Sex</td>
<td width="7"> </td>
<td width="365"> <input name="sex" type="text" class="tekst" id="sex" value="<%=(RecDetail.Fields.Item("sex").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Address</td>
<td width="7"> </td>
<td width="365"> <input name="address" type="text" class="tekst" id="address" value="<%=(RecDetail.Fields.Item("address").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Zipcode</td>
<td width="7"> </td>
<td width="365"> <input name="zipcode" type="text" class="tekst" id="zipcode" value="<%=(RecDetail.Fields.Item("zipcode").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">City</td>
<td width="7"> </td>
<td width="365"> <input name="city" type="text" class="tekst" id="city" value="<%=(RecDetail.Fields.Item("city").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Country</td>
<td width="7"> </td>
<td width="365"> <input name="country" type="text" class="tekst" id="country" value="<%=(RecDetail.Fields.Item("country").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Phone</td>
<td width="7"> </td>
<td width="365"> <input name="phone" type="text" class="tekst" id="phone" value="<%=(RecDetail.Fields.Item("phone").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Fax</td>
<td width="7"> </td>
<td width="365"> <input name="fax" type="text" class="tekst" id="fax" value="<%=(RecDetail.Fields.Item("fax").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Mobile Phone</td>
<td width="7"> </td>
<td width="365"> <input name="mobilephone" type="text" class="tekst" id="mobilephone" value="<%=(RecDetail.Fields.Item("mobilephone").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">E-mail</td>
<td width="7"> </td>
<td width="365"> <input name="email" type="text" class="tekst" id="email" value="<%=(RecDetail.Fields.Item("email").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Date of birth</td>
<td width="7"> </td>
<td width="365"> <input name="dob" type="text" class="tekst" id="dob" value="<%=(RecDetail.Fields.Item("dob").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work start</td>
<td width="7"> </td>
<td width="365"> <input name="starttime" type="text" class="tekst" id="starttime" value="<%=(RecDetail.Fields.Item("starttime").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work duration</td>
<td width="7"> </td>
<td width="365"> <input name="duration" type="text" class="tekst" id="duration" value="<%=(RecDetail.Fields.Item("duration").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Education 1</td>
<td width="7"> </td>
<td width="365"> <input name="education1" type="text" class="tekst" id="education1" value="<%=(RecDetail.Fields.Item("education1").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Education 2</td>
<td width="7"> </td>
<td width="365"> <input name="education2" type="text" class="tekst" id="education2" value="<%=(RecDetail.Fields.Item("education2").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Education3</td>
<td width="7"> </td>
<td width="365"> <input name="education3" type="text" class="tekst" id="education3" value="<%=(RecDetail.Fields.Item("education3").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work 1</td>
<td width="7"> </td>
<td width="365"> <input name="work1" type="text" class="tekst" id="work1" value="<%=(RecDetail.Fields.Item("work1").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work start 1</td>
<td width="7"> </td>
<td width="365"> <input name="work1start" type="text" class="tekst" id="work1start" value="<%=(RecDetail.Fields.Item("work1start").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work end 1</td>
<td width="7"> </td>
<td width="365"> <input name="work1end" type="text" class="tekst" id="work1end" value="<%=(RecDetail.Fields.Item("work1end").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work 2</td>
<td width="7"> </td>
<td width="365"> <input name="work2" type="text" class="tekst" id="work2" value="<%=(RecDetail.Fields.Item("work2").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work start 2</td>
<td width="7"> </td>
<td width="365"> <input name="work2start" type="text" class="tekst" id="work2start" value="<%=(RecDetail.Fields.Item("work2start").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work end 2</td>
<td width="7"> </td>
<td width="365"> <input name="work2end" type="text" class="tekst" id="work2end" value="<%=(RecDetail.Fields.Item("work2end").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work 3</td>
<td width="7"> </td>
<td width="365"> <input name="work3" type="text" class="tekst" id="work3" value="<%=(RecDetail.Fields.Item("work3").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work start 3</td>
<td width="7"> </td>
<td width="365"> <input name="work3start" type="text" class="tekst" id="work3start" value="<%=(RecDetail.Fields.Item("work3start").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Work end 3</td>
<td width="7"> </td>
<td width="365"> <input name="work3end" type="text" class="tekst" id="work3end" value="<%=(RecDetail.Fields.Item("work3end").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Leisure activity</td>
<td width="7"> </td>
<td width="365"> <textarea name="leisureactivity" cols="50" rows="4" class="tekst" id="leisureactivity"><%=(RecDetail.Fields.Item("leisureactivity").Value)%></textarea></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Languages</td>
<td> </td>
<td width="365"> <textarea name="languages" cols="50" rows="4" class="tekst" id="languages"><%=(RecDetail.Fields.Item("languages").Value)%></textarea></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Other</td>
<td> </td>
<td width="365"> <textarea name="other" cols="50" rows="4" class="tekst" id="other"><%=(RecDetail.Fields.Item("other").Value)%></textarea></td>
</tr>
<tr>
<td width="116" class="tekst-bold">password</td>
<td> </td>
<td width="365"> <input name="password" type="text" class="tekst" id="password" value="<%=(RecDetail.Fields.Item("password").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Application date</td>
<td> </td>
<td width="365"> <input name="date" type="text" class="tekst" id="date" value="<%=(RecDetail.Fields.Item("date").Value)%>" size="30"></td>
</tr>
<tr>
<td width="116" class="tekst-bold">Mailinglist</td>
<td> </td>
<td width="365"> <input name="mailinglist" type="text" class="tekst" id="mailinglist" value="<%=(RecDetail.Fields.Item("mailinglist").Value)%>" size="30">
<span class="tekst"> ( True / False )</span></td>
</tr>
<tr>
<td class="tekst-bold">Terms & Conditions</td>
<td> </td>
<td> <input name="terms" type="text" class="tekst" id="terms" value="<%=(RecDetail.Fields.Item("terms").Value)%>" size="30">
<span class="tekst">( True / False )</span> </td>
</tr>
</table>
<br>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<%
DIM objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
if objFSO.FileExists(Server.MapPath("\enmulighed\applicants\images\" & (RecDetail.Fields.Item("ID").Value) & ".jpg")) then
%>
<img src="../applicants/images/<%=(RecDetail.Fields.Item("ID").Value)%>.jpg" alt="Image" width="200" border="2">
<%
Else
%>
<img src="../applicants/images/noname.jpg" alt="Image" width="200" border="2">
<%
end if
%>
</td>
</tr>
</table>
<br>
<input name="statuslevel" type="hidden" id="statuslevel" value="approved">
<br>
<br>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><input name="Submit" type="submit" class="tekst-bold" value="Update and Approve"></td>
</tr>
</table>
<br>
<input type="hidden" name="MM_update" value="newapplicant">
<input type="hidden" name="MM_recordId" value="<%= RecDetail.Fields.Item("ID").Value %>">
</form>
<p class="tekst"><br>
</p></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><img src="../images/spacer.gif" width="1" height="1"></td>
</tr>
</table>
<!-- #BeginLibraryItem "/Library/bottomsite_blackbox.lbi" --><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="50" bgcolor="#000000"> </td>
</tr>
</table><!-- #EndLibraryItem --><!-- #BeginLibraryItem "/Library/bottomsite_copyright.lbi" -->
<link href="../stylesheet.css" rel="stylesheet" type="text/css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" nowrap>
<div align="center" class="tekst">2003 Copyright enMulighed : Design by
<a href="http://www.e-mind.dk" class="design_2">e-mind</a><a href="http://www.e-mind.dk" class="design_1">media</a></div></td>
</tr>
</table>
<p class="design_2"> </p>
<!-- #EndLibraryItem --></body>
</html>
<%
RecDetail.Close()
Set RecDetail = Nothing
%>
---------------------
---------------------
Linie 112 = MM_editCmd.Execute
---------------------
---------------------
/ Kenneth
