Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:29 Der er 18 kommentarer og
1 løsning

så er det galt igen

hej
jeg får en fejl i en asp side.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] The INSERT INTO statement contains the following unknown field name: 'password'. Make sure you have typed the name correctly, and try the operation again.

/logon/opret.asp, line 142

hvad er der galt og hvadgør jeg ved det?
spyro.dk
Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:30 #1
her er koden

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/db.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 = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="../opret.asp"
  MM_rsKeyConnection=MM_db_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("brugernavn"))
  MM_dupKeySQL="SELECT brugernavn FROM bruger WHERE brugernavn='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
  MM_rsKey.ActiveConnection=Conn
  MM_rsKey.Source=MM_dupKeySQL
  MM_rsKey.CursorType=0
  MM_rsKey.CursorLocation=2
  MM_rsKey.LockType=3
  MM_rsKey.Open
  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

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

  MM_editConnection = MM_db_STRING
  MM_editTable = "bruger"
  MM_editRedirectUrl = "login.asp"
  MM_fieldsStr  = "fornavn|value|efternavn|value|email|value|rgang|value|gade|value|bynavn|value|postnummer|value|brugernavn|value|password|value"
  MM_columnsStr = "fornavn|',none,''|efternavn|',none,''|email|',none,''|årgang|none,none,NULL|gade|',none,''|bynavn|',none,''|postnummer|none,none,NULL|brugernavn|',none,''|password|',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
%>

<%
' *** 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 = Conn
    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
%>
<html>
<head>
<title>Ny bruger</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+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body>
<form action="<%=MM_editAction%>" method="POST" name="nybruger" id="nybruger" onSubmit="MM_validateForm('fornavn','','R','efternavn','','R','email','','RisEmail','rgang','','RinRange1900:1984','gade','','R','bynavn','','R','postnummer','','RisNum','brugernavn','','R','password','','R');return document.MM_returnValue">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Fornavn:</td>
      <td> <input type="text" name="fornavn" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Efternavn:</td>
      <td> <input type="text" name="efternavn" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Email:</td>
      <td> <input type="text" name="email" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Årgang:</td>
      <td> <input type="text" name="rgang" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Gade:</td>
      <td> <input type="text" name="gade" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Bynavn:</td>
      <td> <input type="text" name="bynavn" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Postnummer:</td>
      <td> <input type="text" name="postnummer" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Brugernavn:</td>
      <td> <input type="text" name="brugernavn" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">password</td>
      <td> <input type="password" name="password" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td> <input type="submit" value="opret bruger"> </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="nybruger">
</form>
<p>
  <% If (Request.QueryString("requsername")) <> ("") Then 'script %>
  <script language="JavaScript" type="text/JavaScript">
('Brugernavnet <%=Request.QueryString("requsername")%>er optaget. Vælg et nyt');
</script>
  <% End If ' end If (Request.QueryString("requsername")) <> ("") script %>
</p>

</body>
</html>
Avatar billede nordclc Nybegynder
25. november 2002 - 22:37 #2
Hvis du har et felt i din database som hedder password, så prøv lige at kalde det v_password, for jeg tror det er et reserveret ord!

//Claus
Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:38 #3
i min data base heder det adgangskode

spyro
Avatar billede nordclc Nybegynder
25. november 2002 - 22:41 #4
Så prøv at skriv følgende i linie 141:

response.write "tabel:" & MM_editTable & "  Feltnavne:" & MM_tableValues
Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:42 #5
prøver
Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:44 #6
hmmmmmmmm line 141 heder
MM_editCmd.CommandText = MM_editQuery
kan det passe
spyro
Avatar billede nordclc Nybegynder
25. november 2002 - 22:46 #7
Sorry, du skal indsætte den efter linie 134, som hedder: Next
Avatar billede nordclc Nybegynder
25. november 2002 - 22:47 #8
Det er så svært og tælle når man kun har 5 fingre på hver hånd ;o)
Avatar billede henckel Nybegynder
25. november 2002 - 22:50 #9
Hej Spiro
Fejl beskeden "The INSERT INTO statement contains the following unknown field name: 'password'. " fortæller at feltet password ikke findes i den tabel du prøver at indsætte værdierne i. Så vidt jeg kan er tabelnavnet "bruger".

Der kan være to grunde til at den siger det.
1) Feltet findes ikke i tabellen. Dvs at det muligvis er stavet anderledes i tabellen. Check ved at åbne tabellen i design mode og se om navnet password bruges i tabellen.
2) SQL ser password som en intern kommand og ikke som navnet på et felt. For at ændre det skal du istedet skrive [password] der hvor du angiver felt navnet i din INSERT INTO sætning.
prøv at ændre linien:
MM_fieldsStr= "fornavn|value|efternavn|value|email|value|rgang|value|gade|value|bynavn|value|postnummer|value|brugernavn|value|password|value"

til
MM_fieldsStr= "fornavn|value|efternavn|value|email|value|rgang|value|gade|value|bynavn|value|postnummer|value|brugernavn|value|[password]|value"

bemærk password er ændret til [password]

Jeg håber det hjælper dig.
Avatar billede spyro.dk Nybegynder
25. november 2002 - 22:51 #10
er det istedetfor line 135 eller før?
Avatar billede nordclc Nybegynder
25. november 2002 - 22:52 #11
Du indsætter en ny linie mellem 134 og 135
Avatar billede henckel Nybegynder
25. november 2002 - 22:54 #12
Hej Spyro
Glem mit svar. Det vil ikke hjælpe, da du har et andet felt navn end password.
Det ser ud til du er på vej,
så hej
Avatar billede spyro.dk Nybegynder
25. november 2002 - 23:05 #13
hej nordclc
så har jeg indsat den og det gav dette resultat

tabel:bruger Feltnavne:fornavn,efternavn,email,årgang,gade,bynavn,postnummer,brugernavn,password
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] The INSERT INTO statement contains the following unknown field name: 'password'. Make sure you have typed the name correctly, and try the operation again.

/logon/opret.asp, line 143
Avatar billede spyro.dk Nybegynder
25. november 2002 - 23:06 #14
line 143 er MM_editCmd.Execute
Avatar billede nordclc Nybegynder
25. november 2002 - 23:15 #15
Så prøver vi følgende:

I linie 74:
MM_columnsStr = "fornavn|',none,''|efternavn|',none,''|email|',none,''|årgang|none,none,NULL|gade|',none,''|bynavn|',none,''|postnummer|none,none,NULL|brugernavn|',none,''|password|',none,''"

ændres password til adgangskode (hvis det er det dit felt hedder i databasen):
MM_columnsStr = "fornavn|',none,''|efternavn|',none,''|email|',none,''|årgang|none,none,NULL|gade|',none,''|bynavn|',none,''|postnummer|none,none,NULL|brugernavn|',none,''|adgangskode|',none,''"
Avatar billede spyro.dk Nybegynder
25. november 2002 - 23:17 #16
ok prøver
Avatar billede spyro.dk Nybegynder
25. november 2002 - 23:26 #17
ha ha det virker tak for hjælpen Claus
gider du at smide et svar.
mvh spyro.dk
ps det kan godt værer at der kommer et ? til for jeg har osse en brugeropdatering.asp den er der nok osse fejl i :O)
men tak for hjælpen :O)
Avatar billede nordclc Nybegynder
25. november 2002 - 23:27 #18
OK, godt det virker.

//Claus
Avatar billede fynbo Nybegynder
26. november 2002 - 01:52 #19
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