---
title: "Syntaxproblem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/92435-syntaxproblem"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Bendro"
published: "2003-12-11T16:00:26.000Z"
updated: "2003-12-11T21:16:02.000Z"
replies: 9
views: 294
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/92435-syntaxproblem"
---

# Syntaxproblem

## #1 — Bendro, 2003-12-11T16:00Z

Vid en uppdatering av mitt forum fick jag följande felmeddelande:

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

[MySQL][ODBC 3.51 Driver][mysqld-4.0.16-nt-log]You have an 
error in your SQL syntax. Check the manual that corresponds to 
your MySQL server version for the right syntax to use near '5 
FORUM_FORUM.F_SUBJECT, FORUM_TOPICS.T_STATUS, FORUM_TOPICS.T_ 

/forum2/forum/My.asp, line 337
```

Koden felmeddelandet hänvisar till ser ut så här:

```
strSql = strSql & strTablePrefix & "FORUM.F_SUBJECT, " & strTablePrefix & "TOPICS.T_STATUS, "
strSql = strSql & strTablePrefix & "TOPICS.T_VIEW_COUNT, " & strTablePrefix & "TOPICS.FORUM_ID, "
strSql = strSql & strTablePrefix & "TOPICS.TOPIC_ID, " & strTablePrefix & "TOPICS.CAT_ID, "
strSql = strSql & strTablePrefix & "TOPICS.T_SUBJECT, "
strSql = strSql & strTablePrefix & "TOPICS.T_AUTHOR, " & strTablePrefix & "TOPICS.T_REPLIES, "
strSql = strSql & strMemberTablePrefix & "MEMBERS.M_NAME, " & strTablePrefix & "TOPICS.T_LAST_POST_AUTHOR, "
strSql = strSql & strTablePrefix & "TOPICS.T_LAST_POST, " & strMemberTablePrefix & "MEMBERS_1.M_NAME AS LAST_POST_AUTHOR_NAME "
strSql = strSql & "FROM " & strMemberTablePrefix & "MEMBERS, " & strTablePrefix & "FORUM, "
strSql = strSql & strTablePrefix & "TOPICS, " & strMemberTablePrefix & "MEMBERS AS " & strMemberTablePrefix & "MEMBERS_1 "
strSql = strSql & "WHERE " & strTablePrefix & "TOPICS.T_LAST_POST_AUTHOR = " & strMemberTablePrefix & "MEMBERS_1.MEMBER_ID  "
strSql = strSql & "AND " & strTablePrefix & "FORUM.FORUM_ID = " & strTablePrefix & "TOPICS.FORUM_ID "
strSql = strSql & "AND " & strTablePrefix & "FORUM.CAT_ID = " & strTablePrefix & "TOPICS.CAT_ID "
strSql = strSql & "AND " & strMemberTablePrefix & "MEMBERS.MEMBER_ID=" & id
strSql = strSql & "AND " & strTablePrefix & "TOPICS.T_AUTHOR=" & id
strSql = strSql & " ORDER BY " & strTablePrefix & "TOPICS.T_LAST_POST DESC;"

set rs = my_Conn.Execute (strSql)
```

Undrar om det är någon som ser vad det är felmeddelandet hänvisar till för syntaxfel?

Permalänk: https://www.webforum.nu/p/92435

## #2 — LarsG, 2003-12-11T16:06Z

Det saknas en del av sql-frågan. Det omnämns near '5 i meddelandet men någon 5:a finns ej med i din kod.

Gissar att du har

```
select top 5
```

någonstans!?

Permalänk: https://www.webforum.nu/p/1227170

## #3 — Bendro, 2003-12-11T16:08Z

My bad...så här ser raderna precis ovanför ut:

```
if flag_maxtopics = 0 then
	strSql = "SELECT "
else
	strSql = "SELECT TOP " & flag_maxtopics & " "
end if
```

Permalänk: https://www.webforum.nu/p/1227173

## #4 — LarsG, 2003-12-11T16:15Z

top 5 är en icke standardkonstruktion som fungerar i MS-världen. Mysql har hittat på en egen syntax för detta

```
select ... from ... 
order by ...
limt 5
```

Permalänk: https://www.webforum.nu/p/1227178

## #5 — Bendro, 2003-12-11T16:16Z

Aha.. Bugar och tackar.

Permalänk: https://www.webforum.nu/p/1227179

## #6 — Bendro, 2003-12-11T17:02Z

Nu har jag ändrat till:

```
'if flag_maxtopics = 0 then
	strSql = "SELECT "
else
	strSql = "SELECT "
end if

strSql = strSql & strTablePrefix & "FORUM.F_SUBJECT, " & strTablePrefix & "TOPICS.T_STATUS, "
strSql = strSql & strTablePrefix & "TOPICS.T_VIEW_COUNT, " & strTablePrefix & "TOPICS.FORUM_ID, "
strSql = strSql & strTablePrefix & "TOPICS.TOPIC_ID, " & strTablePrefix & "TOPICS.CAT_ID, "
strSql = strSql & strTablePrefix & "TOPICS.T_SUBJECT, "
strSql = strSql & strTablePrefix & "TOPICS.T_AUTHOR, " & strTablePrefix & "TOPICS.T_REPLIES, "
strSql = strSql & strMemberTablePrefix & "MEMBERS.M_NAME, " & strTablePrefix & "TOPICS.T_LAST_POST_AUTHOR, "
strSql = strSql & strTablePrefix & "TOPICS.T_LAST_POST, " & strMemberTablePrefix & "MEMBERS_1.M_NAME AS LAST_POST_AUTHOR_NAME "
strSql = strSql & "FROM " & strMemberTablePrefix & "MEMBERS, " & strTablePrefix & "FORUM, "
strSql = strSql & strTablePrefix & "TOPICS, " & strMemberTablePrefix & "MEMBERS AS " & strMemberTablePrefix & "MEMBERS_1 "
strSql = strSql & "WHERE " & strTablePrefix & "TOPICS.T_LAST_POST_AUTHOR = " & strMemberTablePrefix & "MEMBERS_1.MEMBER_ID  "
strSql = strSql & "AND " & strTablePrefix & "FORUM.FORUM_ID = " & strTablePrefix & "TOPICS.FORUM_ID "
strSql = strSql & "AND " & strTablePrefix & "FORUM.CAT_ID = " & strTablePrefix & "TOPICS.CAT_ID "
strSql = strSql & "AND " & strMemberTablePrefix & "MEMBERS.MEMBER_ID=" & id
strSql = strSql & "AND " & strTablePrefix & "TOPICS.T_AUTHOR=" & id
strSql = strSql & " ORDER BY " & strTablePrefix & "TOPICS.T_LAST_POST LIMIT 5;" 

set rs = my_Conn.Execute (strSql)
```

Och får följande fel:

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

[MySQL][ODBC 3.51 Driver][mysqld-4.0.16-nt-log]You have an 
error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use 
near 'FORUM_TOPICS.T_AUTHOR=1 ORDER BY FORUM_TOPICS.T_LAST_POST LIMIT 

/forum2/forum/My.asp, line 337
```

Permalänk: https://www.webforum.nu/p/1227205

## #7 — @nders, 2003-12-11T17:04Z

Skriv ut den färdiga SQL-frågan med response.write så blir det lättare att felsöka.

Mvh

Permalänk: https://www.webforum.nu/p/1227206

## #8 — Bendro, 2003-12-11T17:06Z

Er önskan är min lag:

```
SELECT FORUM_FORUM.F_SUBJECT, 
FORUM_TOPICS.T_STATUS, FORUM_TOPICS.T_VIEW_COUNT, 
FORUM_TOPICS.FORUM_ID, FORUM_TOPICS.TOPIC_ID, 
FORUM_TOPICS.CAT_ID, FORUM_TOPICS.T_SUBJECT, 
FORUM_TOPICS.T_AUTHOR, FORUM_TOPICS.T_REPLIES, 
FORUM_MEMBERS.M_NAME, FORUM_TOPICS.T_LAST_POST_AUTHOR, FORUM_TOPICS.T_LAST_POST, FORUM_MEMBERS_1.M_NAME AS 
LAST_POST_AUTHOR_NAME FROM FORUM_MEMBERS, 
FORUM_FORUM, FORUM_TOPICS, FORUM_MEMBERS AS 
FORUM_MEMBERS_1 WHERE 
FORUM_TOPICS.T_LAST_POST_AUTHOR = FORUM_MEMBERS_1.MEMBER_ID AND FORUM_FORUM.FORUM_ID 
= FORUM_TOPICS.FORUM_ID AND FORUM_FORUM.CAT_ID = 
FORUM_TOPICS.CAT_ID AND FORUM_MEMBERS.MEMBER_ID=1AND FORUM_TOPICS.T_AUTHOR=1 ORDER BY 
FORUM_TOPICS.T_LAST_POST LIMIT 5;
```

Permalänk: https://www.webforum.nu/p/1227207

## #9 — LarsG, 2003-12-11T17:18Z

Det saknas ett mellanslag

```
FORUM_MEMBERS.MEMBER_ID=1AND
```

Det skulle inte vara så dumt om du delade upp föregående inlägg i flera rader.

Permalänk: https://www.webforum.nu/p/1227216

## #10 — Bendro, 2003-12-11T21:16Z

Sorry   :r 
Tänkte mig inte för.

Permalänk: https://www.webforum.nu/p/1227378

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/92435-syntaxproblem
