|
| Error in update statement, plz hjælp Fra : Preben Jensen |
Dato : 25-06-02 10:12 |
|
Hej, er der en der kan hjælpe mig lidt videre ?
Jeg får nedenstående error når jeg vil opdatere DB.
[Error:]
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/test/sample2-3.asp, line [nederste linie: Set RS = conn.execute(SQLstmt)]
[Script:]
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("dbase.mdb")
Conn.Open DSN
strSQL = "SELECT * from tagwall WHERE ID=" & ID
Set rs = Conn.Execute(strSQL)
sqlstmt = "UPDATE tagwall"
sqlstmt = sqlstmt & " SET callsign='" & calls & "',"
sqlstmt = sqlstmt & "departure='" & dep & "',"
sqlstmt = sqlstmt & "destination='" & des & "',"
sqlstmt = sqlstmt & "date='" & dat & "'"
sqlstmt = sqlstmt & " WHERE ID=" & ID
Set RS = conn.execute(SQLstmt)
Mvh. Preben Jensen.
| |
Jens Gyldenkærne Cla~ (25-06-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 25-06-02 10:15 |
|
Preben Jensen skrev:
> Hej, er der en der kan hjælpe mig lidt videre ?
> Jeg får nedenstående error når jeg vil opdatere DB.
Lav et debug-print på sqlstmt lige inden du kører den. Så er det
langt lettere at finde eventuelle fejl i SQL'en.
> sqlstmt = "UPDATE tagwall"
> sqlstmt = sqlstmt & " SET callsign='" & calls & "',"
> sqlstmt = sqlstmt & "departure='" & dep & "',"
> sqlstmt = sqlstmt & "destination='" & des & "',"
> sqlstmt = sqlstmt & "date='" & dat & "'"
> sqlstmt = sqlstmt & " WHERE ID=" & ID
Response.write sqlstmt
> Set RS = conn.execute(SQLstmt)
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.
| |
Preben Jensen (25-06-2002)
| Kommentar Fra : Preben Jensen |
Dato : 25-06-02 10:49 |
|
Hej Jens og tak
Nu kan jeg da se at det bliver sendt rigtigt afsted til DB-en.
> Lav et debug-print på sqlstmt lige inden du kører den. Så er det
> langt lettere at finde eventuelle fejl i SQL'en.
Det gjorde jeg så og får dette:
UPDATE tagwall SET
callsign='TEST009',departure='EKCH',destination='EKYT',date='6/24/2002'
WHERE ID=2
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
....og det er som det skal være mht. det der skal sendes til DB.
Den fejl jeg har, kan den skyldes disse quotes "'" ?
Et sted læste jeg noget med at hvis det var tekst/tal skulle der være/ikke
være disse quotes, men jeg kan ikke finde det sted på nettet igen.
Mvh. Preben Jensen.
| |
Jesper Stocholm (25-06-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 25-06-02 10:57 |
|
Preben Jensen wrote in
news:3d183c37$0$78771$edfadb0f@dspool01.news.tele.dk:
>> Lav et debug-print på sqlstmt lige inden du kører den. Så er det
>> langt lettere at finde eventuelle fejl i SQL'en.
>
> Det gjorde jeg så og får dette:
> UPDATE tagwall SET
> callsign='TEST009',departure='EKCH',destination='EKYT',date='6/24/2002'
> WHERE ID=2
> Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
> [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE
> statement.
"Date" er et reserveret ord i Access SQL [1] ... så det kan være at det
hjælper hvis du skriver
[Date]='...'
i stedet.
[1] http://www.btgi.net/reservedwords.cfm
:)
--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|
| |
Preben Jensen (25-06-2002)
| Kommentar Fra : Preben Jensen |
Dato : 25-06-02 15:59 |
|
Tak for hjælpen, det kører
Mvh. Preben Jensen
| |
Preben Jensen (25-06-2002)
| Kommentar Fra : Preben Jensen |
Dato : 25-06-02 20:07 |
|
Hej igen, så tæt på at virke og alligevel ikke
Jeg får denne error.....:
UPDATE tagwall SET callsign='',afgang='',ankomst='',dato='',tid='',pw='',
WHERE ID=3
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/domestic/update.asp, line 45
.....på et eller andet i det her som jeg ikke kan få øje på, kan du ?
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("dbase.mdb")
Conn.Open DSN
strSQL = "SELECT * from tagwall WHERE ID=" & ID
Set rs = Conn.Execute(strSQL)
sqlstmt = "UPDATE tagwall"
sqlstmt = sqlstmt & " SET callsign='" & callsign & "',"
sqlstmt = sqlstmt & "afgang='" & afgang & "',"
sqlstmt = sqlstmt & "ankomst='" & ankomst & "',"
sqlstmt = sqlstmt & "dato='" & dato & "',"
sqlstmt = sqlstmt & "tid='" & tid & "',"
sqlstmt = sqlstmt & "pw='" & pw & "',"
sqlstmt = sqlstmt & " WHERE ID=" & ID
Response.write sqlstmt
Set RS = conn.execute(SQLstmt)
Mvh. Preben Jensen.
| |
Jesper Stocholm (25-06-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 25-06-02 21:55 |
|
Preben Jensen wrote in
news:3d18bef7$0$1526$edfadb0f@dspool01.news.tele.dk:
> Jeg får denne error.....:
> UPDATE tagwall SET
> callsign='',afgang='',ankomst='',dato='',tid='',pw='', WHERE ID=3
> Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
> [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE
> statement. /domestic/update.asp, line 45
du har et komma for meget efter pw ... der skal stå
,pw='' where id=3
Du kan i øvrigt se syntaksen for SQL (til SQL-server) på
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ua-uz_82n9.asp?frame=true
:)
--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|
| |
Preben Jensen (25-06-2002)
| Kommentar Fra : Preben Jensen |
Dato : 25-06-02 22:36 |
|
Hej igen, så tæt på at virke og alligevel ikke
Jeg får denne error.....:
UPDATE tagwall SET callsign='',afgang='',ankomst='',dato='',tid='',pw='',
WHERE ID=3
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/domestic/update.asp, line 45
.....på et eller andet i det her som jeg ikke kan få øje på, kan du ?
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("dbase.mdb")
Conn.Open DSN
strSQL = "SELECT * from tagwall WHERE ID=" & ID
Set rs = Conn.Execute(strSQL)
sqlstmt = "UPDATE tagwall"
sqlstmt = sqlstmt & " SET callsign='" & callsign & "',"
sqlstmt = sqlstmt & "afgang='" & afgang & "',"
sqlstmt = sqlstmt & "ankomst='" & ankomst & "',"
sqlstmt = sqlstmt & "dato='" & dato & "',"
sqlstmt = sqlstmt & "tid='" & tid & "',"
sqlstmt = sqlstmt & "pw='" & pw & "',"
sqlstmt = sqlstmt & " WHERE ID=" & ID
Response.write sqlstmt
Set RS = conn.execute(SQLstmt)
Mvh. Preben Jensen.
| |
Jørn Andersen (25-06-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 25-06-02 23:39 |
|
On Tue, 25 Jun 2002 23:35:41 +0200, "Preben Jensen"
<preben@[remove]pdcs.dk> wrote:
>Jeg får denne error.....:
>UPDATE tagwall SET callsign='',afgang='',ankomst='',dato='',tid='',pw='',
>WHERE ID=3
Der skal ikke være komma før WHERE
(desuden er dine værdier tomme, men det skal de måske være?)
<snip>
><%
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath ("dbase.mdb")
> Conn.Open DSN
> strSQL = "SELECT * from tagwall WHERE ID=" & ID
> Set rs = Conn.Execute(strSQL)
Hvad skal dette rs bruges til?
> sqlstmt = "UPDATE tagwall"
> sqlstmt = sqlstmt & " SET callsign='" & callsign & "',"
> sqlstmt = sqlstmt & "afgang='" & afgang & "',"
> sqlstmt = sqlstmt & "ankomst='" & ankomst & "',"
> sqlstmt = sqlstmt & "dato='" & dato & "',"
> sqlstmt = sqlstmt & "tid='" & tid & "',"
> sqlstmt = sqlstmt & "pw='" & pw & "',"
> sqlstmt = sqlstmt & " WHERE ID=" & ID
> Response.write sqlstmt
> Set RS = conn.execute(SQLstmt)
Hvordan vil du danne et RecordSet ud fra et UPDATE-statement?
Nøjes med:
Conn.Execute(SQLstmt)
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
|
|