Avatar billede jmc Nybegynder
08. august 2005 - 23:21 Der er 7 kommentarer og
1 løsning

hvad går galt med denne update? error '80004005'

fejl:
Microsoft JET Database Engine error '80004005'
Operation must use an updateable query.
/timer/timer_opret.asp, line 117



<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%session.LCID = 1030%>
<!--#include file="Connections/sog.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 = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_sog_STRING
  MM_editTable = "timer"
  MM_editRedirectUrl = "oversigt_timer_materiel.asp"
  MM_fieldsStr  = "oprettet|value|beskrivelse|value|timer|value|job_id|value|ansatte_id|value"
  MM_columnsStr = "oprettet|',none,NULL|beskrivelse|',none,''|timer|none,none,NULL|job_id|none,none,NULL|id|none,none,NULL"

  ' 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
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  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_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    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 rs_ansatte__MMColParam
rs_ansatte__MMColParam = "1"
If (Request.Cookies("login") <> "") Then
  rs_ansatte__MMColParam = Request.Cookies("login")
End If
%>
<%
Dim rs_ansatte
Dim rs_ansatte_numRows

Set rs_ansatte = Server.CreateObject("ADODB.Recordset")
rs_ansatte.ActiveConnection = MM_sogaard_STRING
rs_ansatte.Source = "SELECT * FROM ansatte WHERE brugernavn = '" + Replace(rs_ansatte__MMColParam, "'", "''") + "'"
rs_ansatte.CursorType = 0
rs_ansatte.CursorLocation = 2
rs_ansatte.LockType = 1
rs_ansatte.Open()

rs_ansatte_numRows = 0
%>
<%
Dim rs_job__MMColParam
rs_job__MMColParam = "1"
If (Request.QueryString("job_id") <> "") Then
  rs_job__MMColParam = Request.QueryString("job_id")
End If
%>
<%
Dim rs_job
Dim rs_job_numRows

Set rs_job = Server.CreateObject("ADODB.Recordset")
rs_job.ActiveConnection = MM_sogaard_STRING
rs_job.Source = "SELECT * FROM jobs WHERE id = " + Replace(rs_job__MMColParam, "'", "''") + " ORDER BY datostart ASC"
rs_job.CursorType = 0
rs_job.CursorLocation = 2
rs_job.LockType = 1
rs_job.Open()

rs_job_numRows = 0
%>
<html>
<head>
<title>opret </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' skal udfyldes.\n'; }
  } if (errors) alert('Følgende mangler:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body>
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1" onSubmit="MM_validateForm('beskrivelse','','R','timer','','RisNum');return document.MM_returnValue">
  <table border="0" cellspacing="0" cellpadding="2">
    <tr>
      <td colspan="2"><strong>Opret timer for <%=(rs_ansatte.Fields.Item("navn").Value)%><br>
        Job : <%=(rs_job.Fields.Item("jobnavn").Value)%> </strong></td>
    </tr>
    <tr>
      <td> V&aelig;lg dato: </td>
      <td><select name="oprettet" id="oprettet">
          <% for t=0 to 7 %>
          <option name="dag_minus_<%=t%>" value="<%=DateAdd("d",Date,-t)%>"><%=WeekdayName(Weekday(DateAdd("d",Date,-t)))%> : <%=DateAdd("d",Date,-t)%></option>
          <% next %>
        </select></td>
    </tr>
    <tr>
      <td>Beskrivelse: </td>
      <td><input name="beskrivelse" type="text" id="beskrivelse"></td>
    </tr>
    <tr>
      <td>Tidsforbrug: </td>
      <td><input name="timer" type="text" id="timer"></td>
    </tr>
    <tr>
      <td><div align="right">
          <input name="job_id" type="hidden" id="job_id" value="<%=request("job_id")%>">
          <input name="ansatte_id" type="hidden" id="ansatte_id" value="<%=(rs_ansatte.Fields.Item("id").Value)%>">
        </div></td>
      <td><div align="right">
          <input type="submit" name="Submit" value="gem">
        </div></td>
    </tr>
  </table>
 

 

  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>
<%
rs_ansatte.Close()
Set rs_ansatte = Nothing
%>
<%
rs_job.Close()
Set rs_job = Nothing
%>
Avatar billede snowball Novice
08. august 2005 - 23:29 #1
Det er fordi der er problemer med at skrive til databasen. F.eks. hvis din database er skrivebeskyttet eller hvis din database ligger i en folder på serveren hvor man kun har læse rettigheder.

Prøv og læs http://activedeveloper.dk/artikler/default.asp?articleid=58 eller http://azero.dk/support/database/access/ (ca. midt på siden).
Avatar billede jmc Nybegynder
09. august 2005 - 10:36 #3
Ja, vejmand og jeg har mange som ikke ligger et svar.

Jeg skal nok kikke på det, men sniwball vil du ikke sætte din kommentar som et svar så skal jeg afgøre om svare også kunne bruges. Jeg mener folk benytte eksperten forkert. At jeg skal alle gamle spørgsmål igennem og bede folk om at lade deres kommentar være et svar når de var et svar i første omgang.
Avatar billede vejmand Juniormester
09. august 2005 - 10:48 #4
jmc >> Det var ment som en venlig påmindelse, en del brugere her på Eksperten stopper deres hjælp, når de ser spørgeren har mange åbne spørgsmål.
Det vil da være ærgeligt at gå glip af "det gyldne tip" p.g.a. nogle brugere ikke gider svare.

Med hensyn til, om man skal sende svar eller kommentar, er der meget delte meninger.
Det kommer vi nok aldrig ud over.

Håber du får svar på dit problem.  c",)
Avatar billede snowball Novice
09. august 2005 - 11:03 #5
jmc: Jeg syntes nu ikke det er at benytte Eksperten forkert hvis man ikke laver et svar hver gang. Efter min mening er der faktisk alt for mange brugere der koncekvent laver deres indlæg som svar - også uden at det reelt løser problemet dere spørges om.

Læs evt. http://expfaq.1go.dk/?id=3#behandling_af_svar :)
Avatar billede busschou Praktikant
09. august 2005 - 11:08 #6
jmc >> Det er ikke pænt at lyve
Hvis du gad at kigge i din karma vil du se et indlæg fra mig, som i hvert fald er en af dem som har givet dig svar uden du har gidet give point
http://www.eksperten.dk/spm/630852
Derfor er der i al fald ingen hjælp fra min side, som ogås beskrevet i karma tildelingen
Avatar billede busschou Praktikant
09. august 2005 - 11:10 #7
eller det her
http://www.eksperten.dk/spm/637518
hvor du mildest talt "sked" på at få ordentlig hjælp og gav et uduligt svar point
Avatar billede busschou Praktikant
10. august 2005 - 13:00 #8
jeg vil bare undskylde for min dårlige opførsel :o)
Jeg er blevet gjort opmærksom på af coadmin at der intet er at stille op imod folk som ikke godkender svar på deres spørgsmål, fordi der intet står om dette i reglerne
Men omvendt er det imod reglerne at spamme spørgsmål med ting som ikke er konkrete for sprøgsmålet
Fx er det spam at gøre opmærksom på at brugeren ikke har godkendt svar eller advare andre om det - det er så det karma er til for
----
Derfor  ville jeg lige sende min undskyldning :o) , som måske også er spam,
Anyways, undskyld! :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