---
title: "SQL sats fel.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/46995-sql-sats-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "voigtann1"
published: "2002-07-01T12:06:11.000Z"
updated: "2002-07-02T10:06:18.000Z"
replies: 17
views: 333
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/asp/46995-sql-sats-fel"
---

# SQL sats fel..

## #1 — voigtann1, 2002-07-01T12:06Z

```
<%
If Request.Querystring("skickat") = "japp" then
	Set Databas = Server.CreateObject("ADODB.Connection")
	MdbFilePath = Server.MapPath("****.mdb")
	Session("dbasepath") = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
	Databas.Open Session("dbasepath")
	
	Session.LCID = 1053
	namn = Request.Cookies("login")("username")
	inlagg = Request.Form("inlagg")
	forum_id = Request.Querystring("forum_id")
	datum = now()
	svar_id = Request.Querystring("inlagg_id")
	ID = 0

	
	SQL = "INSERT INTO answers"
	SQL = SQL & "(id, svar_id, topic_id, skribent, inlagg, datum) "
	SQL = SQL & "VALUES('" & id & "','" & svar_id & "', '" & topic_id & "', '" & skribent & "', '" & inlagg & "', '" & datum & "')"
	SQL = "UPDATE topics SET senast_svar="& namn &", senast_datum="& datum &" WHERE id="& forum_id
	Databas.Execute(SQL)
		response.redirect "readpost.asp?forum_id="& Request.Querystring("forum_id") &"&inlagg_id="& Request.Querystring("inlagg_id")
	End If
%>
```

får fel på rad 19:
	**Databas.Execute(SQL)**
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression '2002-07-01 14:06:35'.
/test.asp, line 19

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

## #2 — LarsG, 2002-07-01T12:14Z

Vilka datatyper har kolumnerna? Om senast_svar är text och datum är datetime så

```
SQL = "UPDATE topics SET senast_svar='"& namn &"', senast_datum=#"& datum &"# WHERE id="& topic_id
```

Varför har du med detta,

```
SQL = "INSERT INTO answers"
	SQL = SQL & "(svar_id, skribent, datum, svar_id, epost, amne, inlagg) "
	SQL = SQL & "VALUES('" & svar_id & "', '" & topic_id & "', '" & skribent & "', '" & inlagg & "', '" & datum & "')"
```

?
Du utför aldrig den inserten.

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

## #3 — voigtann1, 2002-07-01T12:17Z

varför jag har med det??? det är där inlägget ska läggas upp... får inte det att fungera... :(

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

## #4 — solbulle, 2002-07-01T12:39Z

Det ser ut som om du blandar ihop 2st SQL-satser, först börjar du btgga den ena men sen innan du har kört den (Databas.Execute(SQL)) Börjar du bygga den andra och därmed "radera" det första stycket.
Precis som LarsG skriver.

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

## #5 — voigtann1, 2002-07-01T12:43Z

jag satter ' på "SQL = "UPDATE topics SET senast_svar='"& namn &"', senast_datum=#"& datum &"# WHERE id="& topic_id"

och jag har pillat lite på den:

```
	SQL = "INSERT INTO answers "
	SQL = SQL & "(svar_id, topic_id, skribent, inlagg, datum) "
	SQL = SQL & "VALUES('" & svar_id & "', '" & topic_id & "', '" & skribent & "', '" & inlagg & "', '" & datum & "')"
'	SQL = "UPDATE topics SET senast_svar='"& namn &"', senast_datum=#"& datum &"# WHERE id="& topic_id
	Databas.Execute(SQL)
```

men jag får error ändå:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
\[Microsoft\]\[ODBC Microsoft Access Driver\] Data type mismatch in criteria expression.
/test.asp, line 19

LINE 19:
	Databas.Execute(SQL)

hur ska jag göra så att den gör båda SQL satserna? och få det att fungera?? vad är felet?

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

## #6 — @nders, 2002-07-01T12:47Z

Är inte svar_id och topic_id numeriska (av typen tal i tabellen)? I så fall, ta bort apostroferna runt värdena.

För att exekvera båda satserna är det ju bara att lägga in en *Databas.Execute(SQL)* precis ovanför UPDATE-satsen också.

Mvh,

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

## #7 — UlfT, 2002-07-01T12:48Z

I din insert-sats försöker du lagra "datum" som om det vore en sträng. Du kanske skulle byta dina enkelfnuttar mot fyrkanter även i den satsen.

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

## #8 — LarsG, 2002-07-01T12:49Z

Om du vill utföra 2 olika sql-satser så får du göra 2 st executeanrop.

Exakt hur satserna skall se ut beror på vilken datatyp de olika kolumnrna har. 

Date: # omkring värdena
Text: ' omkring värdena
Number: Inget 

```
SQL = "INSERT INTO answers "
	SQL = SQL & "(svar_id, topic_id, skribent, inlagg, datum) "
	SQL = SQL & "VALUES(" & svar_id & ", " & topic_id & ", '" & skribent & "', '" & inlagg & "', #" & datum & "#)"
Databas.Execute SQL

SQL = "UPDATE topics SET senast_svar='"& namn &"', senast_datum=#"& datum &"# WHERE id="& topic_id

databas.execute SQL
```

Nu antar jag att svar_id och topic_id är number.

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

## #9 — voigtann1, 2002-07-01T12:51Z

får error fortfarande.. men när man kör insert måste 
(svar_id, topic_id, skribent, inlagg, datum)
vara den följden i databasen?

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

## #10 — LarsG, 2002-07-01T13:23Z

Det viktiga är bara att ordingen efter tabellnamnet är samma som ordningen efter values. Hur det är definierat i tabellen har ingen betydelse.

Blir det samma fel? Du får gå igenom alla kolumnerna och kontrollera typerna.

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

## #11 — voigtann1, 2002-07-01T16:36Z

får fel... ska kolla lite mer på det inatt..

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

## #12 — voigtann1, 2002-07-01T17:20Z

måste man ha ID med i insert???? får inte något att fungera.. även "Update" ... knäppt.

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

## #13 — @nders, 2002-07-01T17:20Z

Det beror väl på vad ID är för något. Är det en räknare får du inte ha med det, då skapas det ju automatiskt.

Mvh,

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

## #14 — voigtann1, 2002-07-02T09:03Z

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error in INSERT INTO statement.
/test.asp, line 20

	SQL = "INSERT INTO answers "
	SQL = SQL & "(svar_id, topic_id, skribent, inlagg, datum) "
	SQL = SQL & "VALUES(" & svar_id & ", " & topic_id & ", '" & skribent & "', '" & inlagg & "', #" & datum & "#)"
	Databas.Execute SQL

alla namn stämmer..

datum är datum
svar_id och topic_id är tal
och inlägg är PM
och användarnamnet text...ändå stämmer det inte...

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

## #15 — LarsG, 2002-07-02T09:19Z

Kan du lägga till en utskrift av sql-satsen

```
SQL = "INSERT INTO answers " 
SQL = SQL & "(svar_id, topic_id, skribent, inlagg, datum) " 
SQL = SQL & "VALUES(" & svar_id & ", " & topic_id & ", '" & skribent & "', '" & inlagg & "', #" & datum & "#)" 
response.write sql
'Databas.Execute SQL
```

Är svar_id och topic_id definierade?

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

## #16 — voigtann1, 2002-07-02T09:36Z

nu har jag fixat vad som var fel och sånt.. tack LarsG

Men nu har jag problem med den andra UPDATE:

	SQL = "UPDATE topics "
	SQL = SQL & "WHERE ID = "& vsvar_id &" "
	SQL = SQL & "SET senast_svar = '"& vnamn &"', senast_datum= #"& vdatum &"#"
	response.write SQL	
	databas.execute SQL

Den klarar skriva ut hela inlägget ser ut som att det stämmer.. får inga error men den updatera inte...

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

## #17 — LarsG, 2002-07-02T09:48Z

Du borde ha fått fel på den satsen

```
SQL = "UPDATE topics " 
SQL = SQL & "SET senast_svar = '"& vnamn &"', senast_datum= #"& vdatum &"#" 
SQL = SQL & " WHERE ID = "& vsvar_id 
response.write SQL 
databas.execute SQL
```

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

## #18 — voigtann1, 2002-07-02T10:06Z

nu fungera det :) tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/46995-sql-sats-fel
