---
title: "SQl problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/90407-sql-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Thompa__85"
published: "2003-11-14T12:51:08.000Z"
updated: "2003-11-14T18:04:47.000Z"
replies: 24
views: 1673
page: 1
pages: 2
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/90407-sql-problem"
---

# SQl problem

_Sida 1 av 2._

## #1 — Thompa__85, 2003-11-14T12:51Z

Tjosan!

Tänker uppdatera i databasen..
har denna SQL sats:

```
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath ("databas/dagbok.mdb")

sql = "insert into anv Where id="& request.QueryString("id") (sida, sidinfo, siddatum) values(' minsida.asp?id='"&request.querystring("id")&"' ', ' Spanar in minsida ', '"& Now() &"')"
connect.execute(sql)
```

Men har försökt fram å tillbaka.. men får de inte att funka :(
Får detta felmeddelande:

```
Microsoft VBScript compilation error '800a0401' 

Expected end of statement 

/adde/star/2/minsida2.asp, line 44 

sql = "insert into anv Where id="& request.QueryString("id") (sida, sidinfo, siddatum) values(' minsida.asp?id='"&request.querystring("id")&"' ', ' Spanar in minsida ', '"& Now() &"')"
---------------------------------------------------------------------------------------^
```

Någon som vet vad jag gör för fel?
Vore jätte glad om ni kunde hjälpa mig!!

// Adde

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

## #2 — K@llen, 2003-11-14T12:54Z

Hej,

Du kan inte ha where-klausulen i en insert, dessutom inte på den plats den befinner sig på nu.

Vad vill du göra, skicka in data i databasen eller uppdatera den samma?

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

## #3 — m_soderlund, 2003-11-14T12:56Z

Testa med UPDATE i stället:

```
UPDATE anv SET sida = 'minsida.asp?id=" & Request.Querystring("id") & "', sidinfo = 'Spanar in min sida', Siddatum = Now() WHERE id=" & Request.Querystring("id")
```

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

## #4 — Engine^, 2003-11-14T13:01Z

Du kan inte använda ett WHERE-uttryck i en INSERT INTO-fråga, eftersom det inte kan existera ett resultat innan du stoppat in posten. Det verkar som om du vill göra en update

```
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Provider = "Microsoft.Jet.OleDb.4.0"

strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & ", " & _
  "sidinfo = 'Spanar in minsida', " & _
  "siddatum = '" & Now() & "' " & _
  "WHERE id = " & Request.QueryString("id")

objConn.Open "Data Source=" & Server.MapPath("databas/dagbok.mdb")
objConn.Execute strSQL, lngRA, 128

If lngRA = 0 Then
  strSQL = "INSERT INTO anv (sida, sidinfo, siddatum) VALUES (" & _
    "'minsida.asp?id="& Request.QueryString("id") & "', " & _
    "sidinfo = 'Spanar in minsida', " & _
    "siddatum = '" & Now() & "')"
  objConn.Execute strSQL, , 128
End If

objConn.Close
Set objConn = Nothing
```

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

## #5 — Thompa__85, 2003-11-14T13:08Z

> **Engine^ skrev:**
>
> Du kan inte använda ett WHERE-uttryck i en INSERT INTO-fråga, eftersom det inte kan existera ett resultat innan du stoppat in posten. Det verkar som om du vill göra en update
>
> ```
> Set objConn = Server.CreateObject("ADODB.Connection")
> objConn.Provider = "Microsoft.Jet.OleDb.4.0"
> 
> strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & ", " & _
>   "sidinfo = 'Spanar in minsida', " & _
>   "siddatum = '" & Now() & "' " & _
>   "WHERE id = " & Request.QueryString("id")
> 
> objConn.Open "Data Source=" & Server.MapPath("databas/dagbok.mdb")
> objConn.Execute strSQL, lngRA, 128
> 
> If lngRA = 0 Then
>   strSQL = "INSERT INTO anv (sida, sidinfo, siddatum) VALUES (" & _
>     "'minsida.asp?id="& Request.QueryString("id") & "', " & _
>     "sidinfo = 'Spanar in minsida', " & _
>     "siddatum = '" & Now() & "')"
>   objConn.Execute strSQL, , 128
> End If
> 
> objConn.Close
> Set objConn = Nothing
> ```

Får det att funka halft..
får detta felmeddelande:

```
Microsoft JET Database Engine error '80040e14' 

Syntax error (missing operator) in query expression ''minsida.asp?id={33BD0255-46BC-4E2C-82EC-20E8DE9DDFF6}, sidinfo = 'Spanar in minsida', siddatum = '2003-11-14 14:13:53' WHERE id = {33BD0255-46BC-4E2C-82EC-20E8DE9DDFF6}'. 

/adde/star/2/minsida2.asp, line 50
```

och rad 50 är denna kod:

```
objConn.Execute strSQL, lngRA, 128
```

Varför?

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

## #6 — OveRRidE, 2003-11-14T13:48Z

Näe. :l :)

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

## #7 — Peeer, 2003-11-14T14:05Z

Prova

```
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Provider = "Microsoft.Jet.OleDb.4.0"

strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & "', " & _
  "sidinfo = 'Spanar in minsida', " & _
  "siddatum = '" & Now() & "' " & _
  "WHERE id = '" & Request.QueryString("id") &"'"

objConn.Open "Data Source=" & Server.MapPath("databas/dagbok.mdb")
objConn.Execute strSQL, lngRA, 128

If lngRA = 0 Then
  strSQL = "INSERT INTO anv (sida, sidinfo, siddatum) VALUES (" & _
    "'minsida.asp?id="& Request.QueryString("id") & "', " & _
    "'Spanar in minsida', " & _
    "'" & Now() & "')"
  objConn.Execute strSQL, , 128
End If

objConn.Close
Set objConn = Nothing
```

Om du använder access får du byta ut ' till # runt dina datum

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

## #8 — Jesper T, 2003-11-14T14:06Z

Vad är "lngRA"?

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

## #9 — Thompa__85, 2003-11-14T14:20Z

> **Peeer skrev:**
>
> Prova
>
>
> ```
> Set objConn = Server.CreateObject("ADODB.Connection")
> objConn.Provider = "Microsoft.Jet.OleDb.4.0"
> 
> strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & "', " & _
>   "sidinfo = 'Spanar in minsida', " & _
>   "siddatum = '" & Now() & "' " & _
>   "WHERE id = '" & Request.QueryString("id") &"'"
> 
> objConn.Open "Data Source=" & Server.MapPath("databas/dagbok.mdb")
> objConn.Execute strSQL, lngRA, 128
> 
> If lngRA = 0 Then
>   strSQL = "INSERT INTO anv (sida, sidinfo, siddatum) VALUES (" & _
>     "'minsida.asp?id="& Request.QueryString("id") & "', " & _
>     "'Spanar in minsida', " & _
>     "'" & Now() & "')"
>   objConn.Execute strSQL, , 128
> End If
> 
> objConn.Close
> Set objConn = Nothing
> ```
>
> Om du använder access får du byta ut ' till # runt dina datum

Får detta felmeddelande:

```
Microsoft JET Database Engine error '80040e57' 

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data. 

/adde/star/2/minsida2.asp, line 50
```

rad 50:
objConn.Execute strSQL, lngRA, 128

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

## #10 — @nders, 2003-11-14T14:22Z

Har du kollat så texten du försöker lägga in verkligen får plats i fälten? Det verkar ju onekligen som om något av textfälten är för litet?

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

## #11 — Thompa__85, 2003-11-14T14:31Z

men vilket fält är det den klagar på?

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

## #12 — @nders, 2003-11-14T14:35Z

Något av dem. Spelar det någon roll? Det är bara att gå igenom din tabell och tänka till.

Skriv ut den färdiga SQL-frågan så ser du ju hur mycket data du försöker stoppa in i vilket fält.

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

## #13 — Engine^, 2003-11-14T14:35Z

> **Jesper T skrev:**
>
> Vad är "lngRA"?

En personlig förkortning på *lngRecordsAffected*. Man kan skicka den som argument till Connection.Execute för att få veta hur många records som påverkades av frågan.

**Thompa_85**: Storleken på textfältet i vilket du sparar id:t måste vara minst 38.

> **Peeer skrev:**
>
> Om du använder access får du byta ut ' till # runt dina datum

Nja, om du använder Access tidigare än 2002 ;)

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

## #14 — Thompa__85, 2003-11-14T14:54Z

Ändrade ett fält från "Text" till PM, Vilket verkar funka bra! :)
Vad är skillnaden mellan TEXT och PM?

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

## #15 — K@llen, 2003-11-14T14:59Z

Text klarar 255 tecken, PM klarar 64000 tecken om jag inte minns fel.

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

## #16 — Thompa__85, 2003-11-14T15:07Z

oj de va stor skillnad!
Ett till mini problem!

```
strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & "', " & _
  "sidinfo = 'Spanar in minsida', " & _
  "siddatum = '" & Now() & "' " & _
  "WHERE id = '" & Request.QueryString("id") &"'"
```

Där det står "Spanar in minsida".. vill jag att de ska va:
Spanar in \<%=rs("anv")%\>.. men det funkar inte.. :(

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

## #17 — Engine^, 2003-11-14T15:15Z

```
strSQL = "UPDATE anv SET sida = 'minsida.asp?id=" & Request.QueryString("id") & "', " & _
  "sidinfo = '" & rs("anv") & "', " & _
  "siddatum = '" & Now() & "' " & _
  "WHERE id = '" & Request.QueryString("id") &"'"
```

Jag skulle vilja säga att det inte är praktiskt att ha id-fältet som PM. Det tar onödig plats och gör datahanteringen betydligt långsammare. Använd Text istället och sätt storleken till så mycket som behövs (din id-sträng var 38 tecken om jag räknade rätt, så sätt storleken till exempelvis 40).

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

## #18 — Thompa__85, 2003-11-14T15:23Z

hur ändrar jag storleken?

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

## #19 — Thompa__85, 2003-11-14T15:27Z

hmm det är inställt på Textstorlek: 50

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

## #20 — Engine^, 2003-11-14T15:30Z

I Access.
Öppna designen för tabellen.
Markera raden Id.
I nedre delen av fönstret är det ett antal rader med olika inställningar.
(Förutsatt att Id nu är av typen Text) Ändra Field Size/Fältstorlek till 40. Default är den förvisso 50 tror jag.

Nu kan du även passa på att kontrollera dina andra fälts värden.  Förmodligen lär du behöva göra fältet sida större. Öka till 75 eller 100, så borde det räcka.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/90407-sql-problem  
Nästa sida: https://www.webforum.nu/amne/asp/90407-sql-problem/page2.md
