Avatar billede t-hviid Nybegynder
26. august 2004 - 16:24 Der er 12 kommentarer og
1 løsning

Fejl ved skrive i database

Jeg får følgende fejlmeddelse, når jeg prøver at skrive i min database: Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
/adresser/tilfoj_adresse.asp, line 115

I line 115 står der:MM_editCmd.Execute

Jeg tjekket at der er skrive adgang til webstedet og mappen.
Avatar billede and_ Nybegynder
26. august 2004 - 16:35 #1
din sql er forkert... prøv lige at smide den herind :p
Avatar billede t-hviid Nybegynder
26. august 2004 - 16:36 #2
<!--#include file="../Connections/teknet.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")) = "tilfofAdresse") Then

  MM_editConnection = MM_teknet_STRING
  MM_editTable = "adresser"
  MM_editRedirectUrl = "/adresser/tilfoejet.asp"
  MM_fieldsStr  = "Navn|value|Adresse|value|Postnr|value|By|value|Tlf|value|Fax|value|Mobil|value|Email|value|Webadresse|value"
  MM_columnsStr = "Navn|',none,''|Adresse|',none,''|Postnr|',none,''|By|',none,''|Tlf|',none,''|Fax|',none,''|Mobil|',none,''|Email|',none,''|Webadresse|',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
%>

Den er lavet gennem dreamweaver!
Avatar billede eagleeye Praktikant
26. august 2004 - 17:01 #3
By er reserveret ord i SQL (order by) så det må du ikke kalde din kolonne. Du kan enten omdøbe kolonnen by til noget andte bynavn eller du kan bruge klammer omkring [by] så virker det også.

Så prøv at rette by til [by] i dreamweaver.
Avatar billede t-hviid Nybegynder
26. august 2004 - 22:49 #4
Jeg har nu prøvet at trække by helt ud, men det hjælper ikke. Den samme fejl kommer.
Avatar billede eagleeye Praktikant
26. august 2004 - 22:52 #5
Ok, så prøv at få den til at udksirve SQL sætningen. Tilføje to linje efter denne:
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

Så det bliver:

  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
  Response.Write "SQL: " & MM_editQuery
  Response.End

og prøv at vise hvad du får udskrivet efter SQL:
Avatar billede t-hviid Nybegynder
26. august 2004 - 22:57 #6
Jeg får dette: SQL: insert into adresser (Navn,Adresse,Postnr,Tlf,Fax,Mobil,Email,Webadresse,sogeord) values ('Test','','','','','','','','')
Avatar billede eagleeye Praktikant
26. august 2004 - 23:00 #7
Er alle kolonner tekst kolonner?
Avatar billede t-hviid Nybegynder
26. august 2004 - 23:03 #8
ja!
Avatar billede t-hviid Nybegynder
26. august 2004 - 23:04 #9
Tillad nullængde i databasen, var ikke sat til ja !!!!!! Nu virker det :-)
Avatar billede eagleeye Praktikant
26. august 2004 - 23:05 #10
Ja det rigtig det skal den også :)
Så prøv at fjerne de to linjer igen.
Avatar billede t-hviid Nybegynder
26. august 2004 - 23:09 #11
Det har jeg gjort og det kører, tak for hjælpen. Læg et svar :-)
Avatar billede eagleeye Praktikant
26. august 2004 - 23:10 #12
Det har jeg gjort 26/08-2004 17:01:20 :)
Avatar billede t-hviid Nybegynder
26. august 2004 - 23:12 #13
Det er rigtig !
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