Avatar billede cdc Novice
16. juni 2004 - 18:01 Der er 26 kommentarer og
1 løsning

Hvad er fejlen her: Data type mismatch

Får denne fejl i nedenstående:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/shop/e-shop/admin_product.asp, line 32

SQL="UPDATE Produkter SET "
SQL = SQL & "ProduktNummer='" & ProduktNummer & "', "
SQL = SQL & "ProduktNavn='" & ProduktNavn & "', "
SQL = SQL & "ProduktPris='" & ProduktPris & "', "
SQL = SQL & "PrisMedMoms='" & PrisMedMoms & "', "
SQL = SQL & "ProduktBillede='" & ProduktBillede & "', "
SQL = SQL & "ProduktBeskrivelse='" & ProduktBeskrivelse & "'"
SQL = SQL & " where ProduktID =" & session("ProduktID")
Set RS = Conn.Execute(SQL)
%>

skal dog siges at begge priser samt ProduktID er tal i DB, hvis det har noget at sige
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:02 #1
Ja det har noget at sige. Prøv uden ' omkring de kolonne som er tal.
Avatar billede cdc Novice
16. juni 2004 - 18:04 #2
SQL = SQL & "ProduktPris=" & ProduktPris & "', "
SQL = SQL & "PrisMedMoms=" & PrisMedMoms & "', "

sådan her
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:05 #3
sådan her:

SQL = SQL & "ProduktPris=" & ProduktPris & ", "
SQL = SQL & "PrisMedMoms=" & PrisMedMoms & ", "


Når de er pris er det så med komma tal?
Avatar billede cdc Novice
16. juni 2004 - 18:05 #4
ja
Avatar billede cdc Novice
16. juni 2004 - 18:07 #5
nu får jeg denne:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/shop/e-shop/admin_product.asp, line 32
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:08 #6
er kolonnen så sat til at modtage komma tal?
Avatar billede cdc Novice
16. juni 2004 - 18:09 #7
jepper
Avatar billede cdc Novice
16. juni 2004 - 18:10 #8
antal decimaler = 2
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:11 #9
der er lige en lille ting, man skal overføre komma som punktum i talle. Så 22,25 skal være 22.25
Avatar billede cdc Novice
16. juni 2004 - 18:14 #10
Avatar billede cdc Novice
16. juni 2004 - 18:15 #11
er ikke password på nu så du kan se
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:17 #12
Prøv evt. at udskrive SQL sætningen i stedet for at køre den. Måske der mangler noget?

Response.write SQL
Response.end
Set RS = Conn.Execute(SQL)
Avatar billede cdc Novice
16. juni 2004 - 18:21 #13
og hvor smider jeg den ind :o)
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:22 #14
Ind foran denne linje:

Set RS = Conn.Execute(SQL)

Sådan:

Response.write SQL
Response.end
Set RS = Conn.Execute(SQL)
Avatar billede cdc Novice
16. juni 2004 - 18:27 #15
UPDATE Produkter SET ProduktNummer='', ProduktNavn='', ProduktPris=, PrisMedMoms=, ProduktBillede='', ProduktBeskrivelse='Sort kvalitets T-Shirt med trykt DM i Mix logo på ryggen, samt BUILT TO RESIST på venstre ærme' where ProduktID =2
Avatar billede cdc Novice
16. juni 2004 - 18:29 #16
produktnummer er også tal så den lavede jeg lige om også
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:30 #17
Det tyder på den ikke får hentet data fra form felterne rigtigt. Den henter ProduktBeskrivelsen godt nok.
Avatar billede cdc Novice
16. juni 2004 - 18:31 #18
jeg bruger denne i de andre: <% response.write session("ProduktNummer") %>

og denne i beskrivelse: <% response.write Replace(session("ProduktBeskrivelse"), "<br>", vbCrLf) %>
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:32 #19
Man bruger normalt Request.Form("navn_på_input_Felt") til at hente data fra formen.

PrisMedMoms = Request.Form("PrisMedMoms")
Avatar billede eagleeye Praktikant
16. juni 2004 - 18:44 #20
Så koden ser ud i stil med dette:

ProduktNummer = Request.Form("ProduktNummer")
ProduktNavn = Request.Form("ProduktNavn")
ProduktPris = Request.Form("ProduktPris")
PrisMedMoms = Request.Form("PrisMedMoms")
ProduktBillede = Request.Form("ProduktBillede")
ProduktBeskrivelse = Request.From("ProduktBeskrivelse")

SQL="UPDATE Produkter SET "
SQL = SQL & "ProduktNummer='" & ProduktNummer & "', "
SQL = SQL & "ProduktNavn='" & ProduktNavn & "', "
SQL = SQL & "ProduktPris='" & ProduktPris & "', "
SQL = SQL & "PrisMedMoms='" & PrisMedMoms & "', "
SQL = SQL & "ProduktBillede='" & ProduktBillede & "', "
SQL = SQL & "ProduktBeskrivelse='" & ProduktBeskrivelse & "'"
SQL = SQL & " where ProduktID =" & session("ProduktID")
Set RS = Conn.Execute(SQL)
%>
Avatar billede cdc Novice
16. juni 2004 - 18:52 #21
Hele koden ser således ud:

<%
session.lcid = 1030
%>
<html>
<head>
<title>- Admin e-shop </title>
<base target="_self">
</head>
<body>
      <table border="0" width="450" cellspacing="0" cellpadding="10">
              <tr>
          <td width="100%">
            <table border="0" cellspacing="0" cellpadding="0">
              <tr>
<%
if request("mode") = "gem" then
set conn = server.createobject("ADODB.connection")
path = Server.MapPath("xxxx.mdb")
conn.Open "DBQ="& path &";DefaultDir="& path & ";Driver={Microsoft Access Driver (*.mdb)}"

ProduktBeskrivelse = Replace(request.form("ProduktBeskrivelse"),vbCrLf, "<br>")

SQL="UPDATE Produkter SET "
SQL = SQL & "ProduktNummer=" & ProduktNummer & ", "
SQL = SQL & "ProduktNavn='" & ProduktNavn & "', "
SQL = SQL & "ProduktPris=" & ProduktPris & ", "
SQL = SQL & "PrisMedMoms=" & PrisMedMoms & ", "
SQL = SQL & "ProduktBillede='" & ProduktBillede & "', "
SQL = SQL & "ProduktBeskrivelse='" & ProduktBeskrivelse & "'"
SQL = SQL & " where ProduktID =" & session("ProduktID")
Response.write SQL
Response.end
Set RS = Conn.Execute(SQL)
%>
                <td width="100%" bordercolor="#FFFFFF">
                  <p class="dhtmlBold"><font size="5" color="#294A7B">Siden er opdateret...?</font>
                  <table border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td><img border="0" src="../../../hgk_online/email/admin/images/link_back.gif"></td>
                      <td><p class="copy">&nbsp;<a href="../../../hgk_online/proshop/admin/index.asp" target="_top">Tilbage til menu</a></td>
                    </tr>
                  </table>
                  <p class="dhtmlBold"><%
set rstemp=nothing
Conn.Close
set conntemp=nothing

else

set conn = server.createobject("ADODB.connection")
path = Server.MapPath("xxxx.mdb")
conn.Open "DBQ="& path &";DefaultDir="& path & ";Driver={Microsoft Access Driver (*.mdb)}"
SQL = "SELECT * from Produkter where ProduktID = " & Request.Querystring("ProduktID")
set RS = Conn.Execute(SQL)
Session("ProduktNummer") = RS("ProduktNummer")
Session("ProduktNavn") = RS("ProduktNavn")
Session("ProduktPris") = RS("ProduktPris")
Session("PrisMedMoms") = RS("PrisMedMoms")
Session("ProduktBillede") = RS("ProduktBillede")
Session("ProduktBeskrivelse") = RS("ProduktBeskrivelse")
Session("ProduktID") = Request.Querystring("ProduktID")
%>
  <table border="1" cellpadding="0" cellspacing="0" bordercolor="#294A7B" style="margin-left: 0px;">
    <tr>
      <td bordercolor="#FFFFFF">
        <table border="0" width="420" cellspacing="0" cellpadding="3">
          <tr>
            <td bgcolor="#294A7B">
              <p class="rammetopBold">Redigerings Modul</p>
            </td>
          </tr>
        </table>
      <form method="POST" action="admin_product.asp">
      <INPUT TYPE="hidden" NAME="mode" VALUE="gem">
    <table border="0" cellpadding="0" width="420">
      <tr>
        <td class="copy">&nbsp;Produkt nr.</td>
        <td><input type="text" name="ProduktNummer" size="6" value="<% response.write session("ProduktNummer") %>" style="font-family: Verdana; font-size: 11 px"></td>
      </tr>
      <tr>
        <td class="copy">&nbsp;Produkt Navn</td>
        <td><input type="text" name="ProduktNavn" size="49" value="<% response.write session("ProduktNavn") %>" style="font-family: Verdana; font-size: 11 px"></td>
      </tr>
      <tr>
        <td class="copy">&nbsp;Pris ex. moms</td>
        <td class="copy"><input type="text" name="ProduktPris" size="6" value="<% response.write session("ProduktPris") %>" style="font-family: Verdana; font-size: 11 px">
          <font color="#AA0000">Kr.</font></td>
      </tr>
      <tr>
        <td class="copy">&nbsp;Pris</td>
        <td class="copy"><input type="text" name="PrisMedMoms" size="6" value="<% response.write session("PrisMedMoms") %>" style="font-family: Verdana; font-size: 11 px">
          <font color="#AA0000">Kr.</font></td>
      </tr>
      <tr>
        <td class="copy">&nbsp;Produkt Billed</td>
        <td><input type="text" name="ProduktBillede" size="49" value="<% response.write session("ProduktBillede") %>" style="font-family: Verdana; font-size: 11 px"></td>
      </tr>
      <tr>
        <td width="21%" height="10" class="copy" valign="top">&nbsp;Beskrivelse</td>
        <td width="79%" height="10"><textarea name="ProduktBeskrivelse" rows="5" cols="59" style="font-family: Verdana; font-size: 10 px"><% response.write Replace(session("ProduktBeskrivelse"), "<br>", vbCrLf) %></textarea></td>
      </tr>
      <tr>
        <td width="21%" height="10" class="copy" valign="top"></td>
        <td width="79%" height="10">
          <p class="copy"><br>
  <input type="submit" value="Gem Ændringer" name="b1"><br>
          &nbsp;</td>
      </tr>
  </table>
</td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
              <tr>
          <td width="100%">
            <table border="0" width="144">
              <tr>
                <td width="16">
                  <p align="right"><img border="0" src="../../../hgk_online/email/admin/images/link_back.gif"></td>
                <td width="114">
                  <p class="copy"><a href="../../../hgk_online/proshop/admin/index.asp" target="_top">Tilbage til menu</a></td>
              </tr>
<%
end if
%>
            </table>

              </table>
</body>
Avatar billede eagleeye Praktikant
16. juni 2004 - 19:31 #22
Prøv at rette sådan dette:


<%
if request("mode") = "gem" then
set conn = server.createobject("ADODB.connection")
path = Server.MapPath("xxxx.mdb")
conn.Open "DBQ="& path &";DefaultDir="& path & ";Driver={Microsoft Access Driver (*.mdb)}"

ProduktBeskrivelse = Replace(request.form("ProduktBeskrivelse"),vbCrLf, "<br>")

SQL="UPDATE Produkter SET "
SQL = SQL & "ProduktNummer=" & ProduktNummer & ", "
SQL = SQL & "ProduktNavn='" & ProduktNavn & "', "
SQL = SQL & "ProduktPris=" & ProduktPris & ", "
SQL = SQL & "PrisMedMoms=" & PrisMedMoms & ", "
SQL = SQL & "ProduktBillede='" & ProduktBillede & "', "
SQL = SQL & "ProduktBeskrivelse='" & ProduktBeskrivelse & "'"
SQL = SQL & " where ProduktID =" & session("ProduktID")
Response.write SQL
Response.end
Set RS = Conn.Execute(SQL)
%>


Bliver til:


<%
if request("mode") = "gem" then
set conn = server.createobject("ADODB.connection")
path = Server.MapPath("xxxx.mdb")
conn.Open "DBQ="& path &";DefaultDir="& path & ";Driver={Microsoft Access Driver (*.mdb)}"


ProduktNummer = Request.Form("ProduktNummer")
ProduktNavn = Request.Form("ProduktNavn")
ProduktPris = Request.Form("ProduktPris")
PrisMedMoms = Request.Form("PrisMedMoms")
ProduktBillede = Request.Form("ProduktBillede")
ProduktBeskrivelse = Replace(request.form("ProduktBeskrivelse"),vbCrLf, "<br>")

SQL="UPDATE Produkter SET "
SQL = SQL & "ProduktNummer=" & ProduktNummer & ", "
SQL = SQL & "ProduktNavn='" & ProduktNavn & "', "
SQL = SQL & "ProduktPris=" & ProduktPris & ", "
SQL = SQL & "PrisMedMoms=" & PrisMedMoms & ", "
SQL = SQL & "ProduktBillede='" & ProduktBillede & "', "
SQL = SQL & "ProduktBeskrivelse='" & ProduktBeskrivelse & "'"
SQL = SQL & " where ProduktID =" & session("ProduktID")
Response.write SQL
Response.end
Set RS = Conn.Execute(SQL)
%>
Avatar billede cdc Novice
16. juni 2004 - 20:18 #23
sådan her, skulle lige spise, troede ellers at man kun behøvede at gøre det på et felt:

UPDATE Produkter SET ProduktNummer=1002, ProduktNavn='Sort T-Shirt', ProduktPris=99, PrisMedMoms=124, ProduktBillede='images/tshirt.gif', ProduktBeskrivelse='Sort kvalitets T-Shirt med trykt DM i Mix logo på ryggen, samt BUILT TO RESIST på venstre ærme' where ProduktID =2
Avatar billede eagleeye Praktikant
16. juni 2004 - 20:21 #24
Ja så ser SQL sætningen rigtig ud. Så kan du fjerne disse to linjer igen:

Response.write SQL
Response.end


og se om databasen ikke vil accpetere SQL sætningen.
Avatar billede cdc Novice
16. juni 2004 - 20:25 #25
tak for det :o) smider du ikke lige et svar også
Avatar billede eagleeye Praktikant
16. juni 2004 - 20:25 #26
Jo da :)
Avatar billede cdc Novice
16. juni 2004 - 20:30 #27
tak endnu engang, kommer sikkert tilbage med flere probs med dette script
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