webForumDet fria alternativet

Varför funkar det inte..................................

ASP

13 svar · 133 visningar · startad av larsson

Medlem sedan nov. 200037 inlägg
Frågan#1

Vad är det för fel .... den är byggd i Macromedia UltraDev 4.0 och ska skicka till databas. Rad 90 är med fet stil.
Hoppas att det är någon som har något bra förslag.:)

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.

/ladda.asp, rad 90

:q
Koden är :

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/sanda.asp" -->
<%
' *** Edit Operations: declare variables

MM_editAction = CStr(Request("URL"))
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")) <> "") Then

  MM_editConnection = MM_sanda_STRING
  MM_editTable = "Kunder"
  MM_editRedirectUrl = ""
  MM_fieldsStr  = "Foretagsnamn&#0124;value&#0124;ForNamn&#0124;value&#0124;EfterNamn&#0124;value&#0124;Adress&#0124;value&#0124;Postnummer&#0124;value&#0124;Ort&#0124;value&#0124;Land&#0124;value&#0124;TelefonBostad&#0124;value&#0124;TelArbete&#0124;value&#0124;Mobiltelefon&#0124;value&#0124;Fax&#0124;value&#0124;Epostnamn&#0124;value&#0124;Anteckningar&#0124;value"
  MM_columnsStr = "Foretagsnamn&#0124;',none,''&#0124;ForNamn&#0124;',none,''&#0124;EfterNamn&#0124;',none,''&#0124;Adress&#0124;',none,''&#0124;Postnummer&#0124;',none,''&#0124;Ort&#0124;',none,''&#0124;Land&#0124;',none,''&#0124;TelefonBostad&#0124;',none,''&#0124;TelArbete&#0124;',none,''&#0124;Mobiltelefon&#0124;',none,''&#0124;Fax&#0124;',none,''&#0124;E-postnamn &#0124;',none,''&#0124;Anteckningar&#0124;',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "&#0124;")
  MM_columns = Split(MM_columnsStr, "&#0124;")
  
  ' set the form values
  For i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(i+1) = CStr(Request.Form(MM_fields(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

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

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For i = LBound(MM_fields) To UBound(MM_fields) Step 2
    FormVal = MM_fields(i+1)
    MM_typeArray = Split(MM_columns(i+1),",")
    Delim = MM_typeArray(0)
    If (Delim = "none") Then Delim = ""
    AltVal = MM_typeArray(1)
    If (AltVal = "none") Then AltVal = ""
    EmptyVal = MM_typeArray(2)
    If (EmptyVal = "none") Then EmptyVal = ""
    If (FormVal = "") Then
      FormVal = EmptyVal
    Else
      If (AltVal <> "") Then
        FormVal = AltVal
      ElseIf (Delim = "'") Then  ' escape quotes
        FormVal = "'" & Replace(FormVal,"'","''") & "'"
      Else
        FormVal = Delim + FormVal + Delim
      End If
    End If
    If (i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End if
    MM_tableValues = MM_tableValues & MM_columns(i)
    MM_dbValues = MM_dbValues & 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
    [b]MM_editCmd.Execute[/b]
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan dec. 200012 464 inlägg
#2

Nu orkar jag inte läsa igenom allt, men en sak som kan vara intressant är att se värdet av MM_editQuery. Så om du lägger till detta

response.write MM_editQuery

och visar resultatet.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 200037 inlägg
#3

Här kommer resten av kod på sidan.
Hoppas att det kan hjälpa.
:q

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#CCFFCC" text="#000000">
<form method="post" action="<%=MM_editAction%>" name="form1">
  <table align="center">
    <tr valign="baseline"> 
      <td nowrap align="right">Foretagsnamn:</td>
      <td> 
        <input type="text" name="Foretagsnamn" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">ForNamn:</td>
      <td> 
        <input type="text" name="ForNamn" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">EfterNamn:</td>
      <td> 
        <input type="text" name="EfterNamn" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">Adress:</td>
      <td> 
        <input type="text" name="Adress" 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">Ort:</td>
      <td> 
        <input type="text" name="Ort" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">Land:</td>
      <td> 
        <input type="text" name="Land" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">TelefonBostad:</td>
      <td> 
        <input type="text" name="TelefonBostad" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">TelArbete:</td>
      <td> 
        <input type="text" name="TelArbete" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">Mobiltelefon:</td>
      <td> 
        <input type="text" name="Mobiltelefon" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">Fax:</td>
      <td> 
        <input type="text" name="Fax" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">E-postnamn:</td>
      <td> 
        <input type="text" name="Epostnamn" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">Anteckningar:</td>
      <td> 
        <input type="text" name="Anteckningar" value="" size="32">
      </td>
    </tr>
    <tr valign="baseline"> 
      <td nowrap align="right">&nbsp;</td>
      <td> 
        <input type="submit" value="Insert Record">
      </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="true">
</form>
<p>&nbsp;</p>
</body>
</html>

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan dec. 200012 464 inlägg
#4

Nej, den är helt ointressant. Det är främst insert-satsen som jag vill se.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 200037 inlägg
#5

Förstod nästan det..
Kan det vara denna du är ute efter ?

MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

Det är all kod på sidan som är ute, här.
Eller ska den ligga på någon annan sida ?

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan dec. 200012 464 inlägg
#6

Nja, inte riktigt. Det är innehållet i variabeln som jag vill se


response.write MM_editQuery

Kan du lägga till den koden innan

MM_editCmd.Execute

och visa vad resultatet av utskriften blir?
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 13 nov 2001]

Medlem sedan nov. 200037 inlägg
#7

Hmmm.. Det är all kod som ligger i första inlägget.
Och utskriften blir när jag ska skickar iväg formuläret till databasen (access):

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.

/ladda.asp, rad 90

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan nov. 200037 inlägg
#8

kan det vara den koden som du frågar efter som saknas och gör att det inte funkar ?

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan juni 200032 967 inlägg
#9

Ok, du förstår inte vad LarsG menar, känns det som. Låt mig göra ett försök. :)

För att vi ska kunna se vad som är galet, så vill vi se den slutgiltiga SQL-frågan, alltså efter det att alla variablers värden lagts till i den.

Om du innan den raden du fetmarkerade i ditt första inlägg, lägger till den raden som LarsG visade, så borde du få en utskrift av den färdiga SQL-frågan till din webbläsare. Den utskriften skulle vi vilja se.

Förstår du?

Mvh,

------------------
All your base are belong to me.

Medlem sedan dec. 200012 464 inlägg
#10

Koden skapar ju ett insert-statement som lagras i variabeln MM_editQuery och det är det statementet som jag vill se hur det ser ut.

MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
response.write MM_editquery
response.end

Om du lägger till den koden så kommer det att skrivas ut på din sida hur insert-statementet ser ut och det är det jag vill se.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 200037 inlägg
#11

Nu kanske jag har fått fram det ni vill se.

insert into Kunder (Foretagsnamn,ForNamn,EfterNamn,Adress,Postnummer,Ort,Land,TelefonBostad,TelArbete,Mobiltelefon,Fax,E-postnamn,Anteckningar) values ('test','test','test','test','test','test','test','test','test','test','test','test','test')

Skrev "test" i alla text-rutor.

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan dec. 200012 464 inlägg
#12

Jo, det är mycket enklare att se vad som är fel.

Problemet är att du har en kolumn i din tabell som heter E-postnamn.

Om du använder - i ett namn så kommer det att tolkas som minus i SQL. (Dvs e minus postnamn.)

Antingen kan du byta namn på kolumnen eller så får du ange den inom []

MM_columnsStr = "Foretagsnamn&#0124;',none,''&#0124;ForNamn&#0124;',none,''&#0124;EfterNamn&#0124;',none,''&#0124;Adress&#0124;',none,''&#0124;Postnummer&#0124;',none,''&#0124;Ort&#0124;',none,''&#0124;Land&#0124;',none,''&#0124;TelefonBostad&#0124;',none,''&#0124;TelArbete&#0124;',none,''&#0124;Mobiltelefon&#0124;',none,''&#0124;Fax&#0124;',none,''&#0124;[E-postnam n] &#0124;',none,''&#0124;Anteckningar&#0124;',none,''"

I och för sig skall du kanske inte ändra i den här koden utan i ultradev/MM. (Nu vet jag inte hur det ser ut i UD/MM.)

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 200037 inlägg
#13

Tack så mycket LarsG , ska testa det imorron.
Man lär sig alltid något nytt varje dag genom detta forum.

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

Medlem sedan nov. 200037 inlägg
#14

Det funkar kanon !!

Tackar.

------------------
~~ kanske inte ännu, men snart så funkar det :- ) ~~

268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)