---
title: "Något knas!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/8988-något-knas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "streetrobban"
published: "2001-04-11T16:07:00.000Z"
updated: "2001-04-12T12:18:00.000Z"
replies: 6
views: 424
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/8988-något-knas"
---

# Något knas!

## #1 — streetrobban, 2001-04-11T16:07Z

Om jag inte har några nyheter i databasen och ska lägga till en nyhet. Så får inte den första innehålla mycket text. Men alla andra nyheter jag skriver kan innehålla hur mycket text som helst. Varför det?

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

## #2 — LarsG, 2001-04-11T16:22Z

Det skall inte ha någon betydelse att det är första posten du lägger in. Så det är förmodligen något annat problem.

Vad får du för fel när du misslyckas. Det kan också vara intressant att se den bit av koden där du lagrar nyheter.

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

## #3 — streetrobban, 2001-04-11T17:44Z

Ok, här kommer felmeddelandet:

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

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket ''sdofpj qifj qaidsh asdk qnwidhq wdpkqns duansd uihwqd ipa'isj diapäsdj ijwasdmna sdin qiwpdhjq pdwij aipsdj aipsjd pqjd qpjdwqdwqipdwoij qjdwjqdw qipd jqidi qijd iqpwdjq wdij aijsda ishd uqw dh qw9r+ r1r2 qåwie 0qwi e+q09wu eqowej aksdn ipahjd 8qhj2 öqojwd'. 

/asp/test/admin/news-add2.asp, rad 32
```

Och här kommer koden:

```
<% Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\asp\test\db\db.mdb"
Set objRecSet = Server.CreateObject("ADODB.Recordset") %>

<%
news = Request.Form("news")
topic = Request.Form("topic")
datum = Request.Form("datum")
writer = Request.Form("writer")

SQL = "INSERT INTO news (news, topic, datum, writer) VALUES ('"& news &"', '"& topic &"', '"& datum &"', '"& writer &"')"
objConn.Execute SQL

objConn.Close
Set objConn = Nothing
%>

<% response.redirect "default.asp" %>
```

adovbs.inc är inkluderad och jag har \<% response.buffer = true %\> högst upp på sidan.

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

## #4 — Brimba, 2001-04-11T17:46Z

det kan inte vara ':en? prova att skriva ett långt inlägg bestående av bara a:n

Sedan undrar jag vad det är för typ av fält du har i databasen.

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

## #5 — LarsG, 2001-04-11T17:54Z

Problemet är att din text innehåller apostrofer. Du får byta ut alla förekomster till dubbla. 

```
news = replace(Request.Form("news"),"'","''")
topic = replace(Request.Form("topic"),"'","''")
datum = Request.Form("datum")
writer = replace(Request.Form("writer"),"'","''")
```

Det fungerar så i SQL att i en sträng så tolkas dubbla apostrofer som en apostrof.

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

## #6 — streetrobban, 2001-04-12T11:33Z

Varför ska man skriva så LarsG? Det är ju bara det första inlägget som måste vara kort.

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

## #7 — LarsG, 2001-04-12T12:18Z

Nej, det har inte med längden att göra. Jag kan försöka att exemplifiera.

Antag att du har ett fält vars värde du vill stoppa in i en tabell. Då skriver man t.ex. 

f = request.form("f")
sql = "insert into t(f) values('" \_
   & f & "')"
Om nu fältet innehåller texten a'c så kommer variabeln sql att innehålla värdet

  insert into t(f) values('a'c')

vilket tolkas som att strängen slutar efter a och sedan kommer det något som sql-tolken inte förstår. Om man istället skriver 

insert into t(f) values('a''c')

så tolkas det som strängen a'c. Det är bara en konvention som man valde när SQL definierades.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/8988-något-knas
