Sitter med ett skolprojekt, en adminsida ska uppdatera en databas. Jobbar i Dreamweaver MX 2004, Access med ASP VBScript som servermodell. Jag har lyckas åstadkomma en fungerande login, kan visa datan på en sida och ta bort poster. Jag vill ha en funktion för att lägga till poster och en att uppdatera befintliga poster. Använder mig av DW´s inbyggda funktioner men får ovanstående meddelande efter submit på insert-sidan och "Syntaxfel i UPDATE-uttryck" från update-sidan. DW genererar så mycket kod så jag vet inte var jag ska börja. Någon som har några ideér? Det är nackdelen med verktyg som genererar kode, det blir svårt att felsöka... Det är omöjligt att svara på vad som är fel, uppenbarligen i SQL-satsen som genereras, men exakt vad är svårt att säga utan att se koden. Tack Johan för snabbt svar. Du sa något om att det är svårt att veta utan att se koden. Så här är den SQL koden som DW genererar. Det är; MM_editCmd.Execute, som felmeddelandet inte gillar men det bör väl bero på något som händer före. Det är en himla massa saker, och jag som blåbär förstår endast hälften, om knappt det. Hej, Jag ser inte att variabeln MM_editTable får något värde någonstans? Den borde innehålla tabellnamnet. MM_editTable innehåller tabellnamnet. Jag utelämnade en den del kod där variablerna deklarerades och tilldelades, när jag kopierade koden. Du har inga fältnamn med mellanslag eller konstiga tecken i databasen? Jag kollade lite på den variabeln som du sa, den ser ut så här; Ne, en tabell med två fältnamn. Ruggit enkel, tänkte att lösa denna innan jag gav mig på den stora db. User är ett reserverat ord. Döp om fältet. Hej, Nu funkar det, tack för all hjälp. Nu har man fått lära sig den hårda vägen att noga överväga namn!!Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-uttry
Sv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/JohanSv:Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/Madde
<%
' *** 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
%>Sv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
Jag kan bara säga urk om autogenerad kod...även om man vet vad sakerna betyder så är det oftast så fruktansvärt fult ihopslängt att man inte kan läsa det vettigt ändå....
Nåväl, jag skulle rekommendera att du tittar nrämare på det resulterande innehållet i din variabel "MM_editQuery" precis innan den används (dvs, där det går fel). Dumpa sedan dess värde här i forumet om du vill ha hjälp att analysera den.
Ett vanligt problem brukar vara att det inte tas hänsyn till "förbjudna" tecken. T.ex. brukar personnamn som o'Malley ställa till det...
// en annan JohanSv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/JohanSv:Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/MaddeSv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/JohanSv:Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
Sedan hittade jag en liten sak som skrev ut värdet i variabeln;
Response.Write MM_editQuery
Response.End
Resultatet blev;
insert into Login (User,Password) values ('parameter1','parameter2')
Med mina newbe-ögon ser detta rätt ut, hur ser det ut i era?
/MaddeSv:Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
Trodde jag, ja. Märkligt!!
/MaddeSv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
Sv:Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
OM jag minns rätt så är både user och password reserverade ord, så om du vill använda dessa som namn så måste du slänga ett par fyrkantiga parenteser runt namnen. Såhär:
<code>
INSERT INTO Login ([User], [Password]) VALUES ('parameter1' ,'parameter2')
</code>
// JohanSv: Feltyp; Microsoft JET Database Engine (0x80040E14) Syntaxfel i INSERT INTO-u
/Madde