Avatar billede intrique Nybegynder
08. oktober 2001 - 17:26 Der er 13 kommentarer og
1 løsning

Got damnit!!

Nogen kan måske huske det her spørgsmål før - men jeg mangler stadig svar!! :( her er koden for en fil, der skal tilføje nyheder. Hvor er fejlen?!

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"database.mdb\")
Conn.Open DSN

strSQL = \"Insert into news (\"

strSQL = strSQL & \"user, \"
strSQL = strSQL & \"title, \"
strSQL = strSQL & \"news_text, \"
strSQL = strSQL & \"Mail, \"
strSQL = strSQL & \"Date) \"

strSQL = strSQL & \"values( \"

strSQL = strSQL & \"\'\" & Request.Form(\"User\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Titel\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"News_text\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Mail\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Dato\") & \"\')\"

\' SQL sætning eksekveres
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Håber i kan svare!
Avatar billede jokn Nybegynder
08. oktober 2001 - 17:39 #1
hvor har du lagt scriptet op?

altså hvilken server/side?
Avatar billede keysersoze Ekspert
08. oktober 2001 - 17:44 #2
hvad siger den af fejl?
Avatar billede prof2 Nybegynder
08. oktober 2001 - 17:48 #3
Skriv sådan her istedet... Bare kopier det hele ind...


<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Set RS = Server.CreateObject(\"ADODB.RecordSet\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"database.mdb\")
Conn.Open DSN


rs.open \"Select * from news\",conn,1,3
rs.addnew

rs(\"user\") = Request.Form(\"User\")
rs(\"title\") = Request.Form(\"title\")
rs(\"news_text\") = Request.Form(\"news_text\")
rs(\"Mail\") = Request.Form(\"Mail\")
rs(\"Date\") = Request.Form(\"Date\")

rs.update
rs.close
Conn.Close
Set Conn = Nothing
Set RS = Nothing
%>


Hvis det ikke virker... Skal du rette i dit script, så der kommer et mellemrum før values... Sådan at denne linje:
strSQL = strSQL & \"values( \"
Kommer til at være:
strSQL = strSQL & \" values( \"

Men prøv mit script først.. Det er meget mere overskueligt.
Avatar billede 2-maz Nybegynder
08. oktober 2001 - 18:02 #4
Prøv at gøre sådan her:

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"database.mdb\")
Conn.Open DSN

strSQL = \"Insert into news (\"

strSQL = strSQL & \"user, \"
strSQL = strSQL & \"title, \"
strSQL = strSQL & \"news_text, \"
strSQL = strSQL & \"Mail, \"
strSQL = strSQL & \"Date) \"

strSQL = strSQL & \"values( \"

strSQL = strSQL & \"\'\" & Request.Form(\"User\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Titel\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"News_text\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Mail\") & \"\', \"
strSQL = strSQL & \"\'\" & Now & \"\')\"

\' SQL sætning eksekveres
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede webbe Nybegynder
09. oktober 2001 - 08:18 #5
2 ting:

1: Date er et reserveret ord....brug dato istedet!

2: Hvorfor ikke bare gøre sådan her:

strSQL = \"INSERT INTO news (user, title, news_text, Mail, Dato) VALUES (\"&\"\'\"&request.form(\"user\")&\"\', \'\"&request.form(\"titel\")&\"\', \'\"&request.form(\"news_text\")&\"\', \'\"&request.form(\"Mail\")&\"\', \'\"&date&\"\')\"
Conn.Execute(strSQL)

Det skulle være en sikker løsning.....jeg har i hvert falf aldrig problemer med den!
Avatar billede intrique Nybegynder
09. oktober 2001 - 17:00 #6
Den siger følgende:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/add_news.asp, line 46


Forstår i nogET????+
Avatar billede 2-maz Nybegynder
09. oktober 2001 - 18:21 #7
Hvor er linje 46?
Avatar billede keysersoze Ekspert
09. oktober 2001 - 18:49 #8
en lidt underlig opbygning, men prøv;

strSQL = \"Insert into news (\"

strSQL = strSQL & \"user, \"
strSQL = strSQL & \"title, \"
strSQL = strSQL & \"news_text, \"
strSQL = strSQL & \"Mail, \"
strSQL = strSQL & \"[Date]) \"

strSQL = strSQL & \"values(\"

strSQL = strSQL & \"\'\" & Request.Form(\"User\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Titel\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"News_text\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Mail\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Dato\") & \"\')\"
Avatar billede webbe Nybegynder
10. oktober 2001 - 10:12 #9
Syntaxfejlen opstår fordi du har et felt i din DB der hedder DATE!!!

Som tidligere skrevet er date et reserveret ord i sql/asp og derfor opfattes feltet DATE som en del af syntaxen.
Men da syntaxen DATE står forkert opstår fejlen!

Omdøb feltet DATE til fx. DATO og så skulle fejlen være væk!
Avatar billede keysersoze Ekspert
10. oktober 2001 - 10:31 #10
eller sætte [] omkring navnet...
Avatar billede 2-maz Nybegynder
10. oktober 2001 - 13:02 #11
nemlig keysersoze:
det er da helt klart det nemeste at sætte [] rundt om DATE...
Avatar billede 2-maz Nybegynder
10. oktober 2001 - 16:55 #12
Ergo kommer det til at se sådan her ud:

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"database.mdb\")
Conn.Open DSN

strSQL = \"Insert into news (\"

strSQL = strSQL & \"user, \"
strSQL = strSQL & \"title, \"
strSQL = strSQL & \"news_text, \"
strSQL = strSQL & \"Mail, \"
strSQL = strSQL & \"[Date]) \"

strSQL = strSQL & \"values( \"

strSQL = strSQL & \"\'\" & Request.Form(\"User\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Titel\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"News_text\") & \"\', \"
strSQL = strSQL & \"\'\" & Request.Form(\"Mail\") & \"\', \"
strSQL = strSQL & \"\'\" & Now & \"\')\"

\' SQL sætning eksekveres
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede intrique Nybegynder
11. oktober 2001 - 18:03 #13
Nu prøver jeg det... også skriver jeg lige en kommentar.... og btw, jeg tror {TROR} at Webbe får pointene.
Avatar billede 2-maz Nybegynder
11. oktober 2001 - 19:24 #14
Lige så du ikke laver den samme fejl 2 gange:

Disse ord må ikke anvendes i Access:

ADD
ALL
Alphanumeric
ALTER
AND
ANY
Application
AS
ASC
Assistant
AUTOINCREMENT
Avg
B
BETWEEN
BINARY
BIT
BOOLEAN
BY
BYTE
C
CHAR, CHARACTER
COLUMN
CompactDatabase
CONSTRAINT
Container
Count
COUNTER
CREATE
CreateDatabase
CreateField
CreateGroup
CreateIndex
CreateObject
CreateProperty
CreateRelation
CreateTableDef
CreateUser
CreateWorkspace
CURRENCY
CurrentUser
D
DATABASE
DATE
DATETIME
DELETE
DESC
Description
DISALLOW
DISTINCT
DISTINCTROW
Document
DOUBLE
DROP
E
Echo
Else
End
Eqv
Error
EXISTS
Exit
F
FALSE
Field, Fields
FillCache
FLOAT, FLOAT4, FLOAT8
FOREIGN
Form, Forms
FROM
Full
FUNCTION
G
GENERAL
GetObject
GetOption
GotoPage
GROUP
GROUP BY
GUID
H
HAVING
I
Idle
IEEEDOUBLE, IEEESINGLE
If
IGNORE
Imp
IN, In
INDEX
Index, Indexes
INNER
INSERT
InsertText
INT, INTEGER, INTEGER1, INTEGER2, INTEGER4
INTO
IS, Is
J
JOIN
K
KEY
L
LEFT
Level
Like
LOGICAL, LOGICAL1
LONG, LONGBINARY, LONGTEXT
M
Macro
Match
Max, Min, Mod
MEMO
Module
MONEY
Move
N
NAME
NewPassword
NO
Not
NULL
NUMBER, NUMERIC
O
Object
OLEOBJECT
OFF
ON
OpenRecordset
OPTION
OR, Or
ORDER
Outer
OWNERACCESS
P
Parameter
PARAMETERS
Partial
PERCENT
PIVOT
PRIMARY
PROCEDURE
Property
Q
Queries
Query
Quit
R
REAL
Recalc
Recordset
REFERENCES
Refresh
RefreshLink
RegisterDatabase
Relation
Repaint
RepairDatabase
Report
Reports
Requery
RIGHT
S
SCREEN
SECTION
SELECT)
SET
SetFocus
SetOption
SHORT
SINGLE
SMALLINT
SOME
SQL
StDev, StDevP
STRING
Sum
T
TABLE
TableDef, TableDefs
TableID
TEXT
TIME, TIMESTAMP
TOP
TRANSFORM
TRUE
Type
U
UNION
UNIQUE
UPDATE
V
VALUE
VALUES
Var, VarP
VARBINARY, VARCHAR
W
WHERE
WITH
Workspace
X
Xor
Y
Year
YES
YESNO
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