Avatar billede aros Nybegynder
08. oktober 2004 - 19:40 Der er 10 kommentarer og
1 løsning

Problemer med at skrive til db via asp

Jeg får flg. fejlmeddelelse, når jeg forsøger at skrive til min db:
Fejltype:
Microsoft JET Database Engine (0x80040E07)
Datatyperne stemmer ikke overens i kriterieudtrykket.
/blog/admin2.asp, line 115


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Side:
POST 80 bytes to /blog/admin2.asp

POST Data:
dato=24-12.2004&overskrift=dette+er+en+test&text=test&xhtml=test&MM_insert=form1

Hvad er der galt??
Avatar billede and_ Nybegynder
08. oktober 2004 - 19:41 #1
din indsæt-sql er forkert....

Tekst skal have ' omkring sig og tal skal ikke.... smid den evt. lige her
Avatar billede arne_v Ekspert
08. oktober 2004 - 19:42 #2
Du har formentlig en:

WHERE talfelt='xxxx'

eller

WHERE tekstfekt=123
Avatar billede aros Nybegynder
08. oktober 2004 - 20:58 #3
hmm.... kan jeg ikke forstå, den er lavet i dreamweaver, men finder den lige frem.

Her er det hele:
<%@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 & "?" & Server.HTMLEncode(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_db_STRING
  MM_editTable = "blog"
  MM_editRedirectUrl = "admin3.asp"
  MM_fieldsStr  = "dato|value|overskrift|value|text|value"
  MM_columnsStr = "dato|',none,NULL|overskrift|',none,''|tekst|',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 = 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
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<object id="richedit" style="BACKGROUND-COLOR: buttonface" data="RTE_Files/richedit.html"width="100%" height="80%" type="text/x-scriptlet">
</object>
<form ACTION="<%=MM_editAction%>" method="POST" name="form1" id="theForm">
  <p>Dato:
    <input name="dato" type="text" id="dato">
</p>
  <p>Overskrift:
    <input name="overskrift" type="text" id="overskrift">   
    <textarea name="text" style="display:none" rows="1" cols="20"></textarea>
    <textarea name="xhtml" style="display:none" rows="1" cols="20"></textarea>
    </p>

  <input type="hidden" name="MM_insert" value="form1">
</form>
<script language="JavaScript" event="onload" for="window">
richedit.options="history=yes;source=yes;dragdrop=yes;styleBar=yes;style=yes;font=yes;fontSize=yes;colour=yes;";
richedit.docHtml = theForm.text.innerText;
</script>
<script language="JavaScript" event="onscriptletevent(name, eventData)" for="richedit">
if (name == "post") {
theForm.text.value = eventData;
theForm.xhtml.value = richedit.docXHtml;
theForm.submit();
}
</script>

</body>
</html>
Avatar billede arne_v Ekspert
08. oktober 2004 - 21:04 #4
Føj noget ulæseligt kode.

Skal du angive felt typerne i Dreamweaver ? Jeg tror stadigvæk at det er der den er gal !
Avatar billede arne_v Ekspert
08. oktober 2004 - 21:04 #5
Omkring den her:

MM_columnsStr = "dato|',none,NULL|overskrift|',none,''|tekst|',none,''"
Avatar billede aros Nybegynder
08. oktober 2004 - 21:09 #6
Meget af det, der gør at den er ulæseligt, er nok at jeg bruger RTE Editor, det er en wysiwyg-editor, kan være jeg skal droppe den og bygge det op fra bunden i stedet.
Jeg følger eksemplerne fra "Dreamweaver MX2004" af Søren Pedersen. Har hentet de originale sourcekoder, prøver at sammenligne dem.
Avatar billede arne_v Ekspert
17. oktober 2004 - 17:36 #7
Fundet ud af noget ?
Avatar billede aros Nybegynder
18. oktober 2004 - 08:05 #8
Undskyld jeg ikke har svaret tilbage før nu, har ligget vandret på arbejdet.
Jeg har kigget på den originale sourcekode, og den ligner min fuldstændig.
Jeg har fået fat i en anden server, hvor jeg kan komme til at teste på, men har ikke haft tid til at forsøge
Avatar billede arne_v Ekspert
24. oktober 2004 - 21:26 #9
Kommet videre ?
Avatar billede aros Nybegynder
26. oktober 2004 - 08:33 #10
ved ikke hvad der skete, men efter at jeg smed den op på den anden server, virker det fint..

Smid et svar, så får du point
Avatar billede arne_v Ekspert
26. oktober 2004 - 08:40 #11
ok
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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