---
title: "SQL-fråga!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/56584-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "trexter.com"
published: "2002-10-20T12:53:41.000Z"
updated: "2002-10-20T15:40:30.000Z"
replies: 24
views: 563
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/databaser-sql/56584-sql-fråga"
---

# SQL-fråga!

_Sida 1 av 2._

## #1 — trexter.com, 2002-10-20T12:53Z

Jag har en databas med tre kolummer,
ID & Number & Reference

... jag kommer få ett värde som ska jämföras med Reference. Där det stämmer överens ska Number plussas med ett.
Men om "Reference-värdet" inte finns ska detta \_skrivas in och en ett under "Number"\_.

Hur ska SQL-frågan då se ut?

 :)

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

## #2 — sgtpepper, 2002-10-20T13:04Z

Det här är ju inte något som specifikt handlar om ASP så inlägget bör flyttas till SQL-forumet.

Det du vill göra kräver två SQL-satser, först en utplockning:
SELECT \* FROM foo WHERE reference=\<?\>

Sen en kontroll om frågan inte gav några träffar, i så fall kör du en insättning:
INSERT INTO foo(number, reference) VALUES(1, \<?\>)

Där \<?\> är värdet på reference som du fått. Insertsatsen förutsätter att kolumnen ID är autoräknande, annars får du själv skicka in ett ID-nummer.

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

## #3 — OveRRidE, 2002-10-20T13:10Z

Så rätt, så. Tråden flyttas.

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

## #4 — LarsG, 2002-10-20T13:11Z

```
connect.execute "update t set number = number + 1 where reference = " & reference",rows,128
if  rows = 0 then
connect.execute "insert into t(reference,number) values(" & reference & ",1)",,128
end if
```

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

## #5 — trexter.com, 2002-10-20T13:15Z

Men om frågan ger några träffar då? Då kommer ju insättningen hoppas över?!

Jag försåtr inte riktigt hur du menar...

r) Lars kod löser nog problemet...

 :)

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

## #6 — trexter.com, 2002-10-20T13:23Z

Jag får ett felmeddelande:

```
Microsoft VBScript compilation error '800a0409' 
Unterminated string constant 
/v2/default.asp, line 6 
Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = " & Reference ",rows,128
--------------------------------------------------------------------------------------------------^
```

Men det blir inte heller rätt om jag avslutar med ett extra ".

Koden ser (som sagt) ut så här:

```
<!--#include file="includes/connstring.asp" -->
Reference = Trim(LCase(Request.ServerVariables("HTTP_REFERER"))) & ""
Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = " & Reference ",rows,128

If  Rows = 0 Then
	Connect.Execute "Insert into Counter(Reference,Number) Values(" & Reference & ",1)",,128
End If

Connect.Close
Set Connect = Nothing
```

 :)

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

## #7 — @nders, 2002-10-20T14:18Z

Ta bort det sista citationstecknet, det före rows.

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

## #8 — trexter.com, 2002-10-20T14:22Z

```
Microsoft VBScript compilation error '800a03ea' 

Syntax error 

/v2/Default.asp, line 6 

Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = " & Reference & ,rows,128"
------------------------------------------------------------------------------------------^
```

```
Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = " & Reference & ,rows,128"
```

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

## #9 — LarsG, 2002-10-20T14:37Z

```
Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = " & Reference ,rows,128
```

Det förutsätter att reference är numeriskt i databasen.

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

## #10 — trexter.com, 2002-10-20T14:38Z

Ok. Men det är text. Hur göra då?

 :)

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

## #11 — LarsG, 2002-10-20T14:43Z

```
Connect.Execute "Update Counter SET Number = Number + 1 Where Reference = '" & replace(Reference,"'","''") & "'" ,rows,128
```

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

## #12 — trexter.com, 2002-10-20T14:50Z

Tack, men...
Jag får "Object required: 'Connect'" på koden... går det inte att länka in en koppling som jag gjort på detta sätt?  :q 

\<!--#include file="includes/connstring.asp" --\>

 :)

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

## #13 — trexter.com, 2002-10-20T14:52Z

Connstring.asp:

```
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=password;Data Source=" & Server.MapPath("/mapp/undermapp/databas.mdb")
```

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

## #14 — trexter.com, 2002-10-20T14:58Z

Ska tillägga att om jag har koden direkt i filen i  stället för i en inkluderingsfil får jag "Syntax Error in Update Statement"...

 :)

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

## #15 — @nders, 2002-10-20T15:06Z

Det är inte ovanligt att Syntax Error-felmeddelanden innebär att man har ett reserverat ord med i SQL-frågan, tabell- eller fältnamn alltså.

Number är reserverat. Byt namn.

Ang ditt andra problem med Object expected så får du nog visa lite kod. Visst kan man inkludera filer, det spelar ingen roll vad som är i dem. Innehållet i de olika filerna klistras ju bara ihop, så det ska inte spela någon roll om du använder include eller skriver koden rätt i filen.

Mvh,

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

## #16 — trexter.com, 2002-10-20T15:12Z

```
Microsoft VBScript runtime error '800a01a8' 
Object required: 'Connect' 
/v2/Default.asp, line 6
```

```
<!--#include file="includes/variables.asp" -->
<%
' Kod för att räkna varifrån besökare kommit
Reference = Trim(LCase(Request.ServerVariables("HTTP_REFERER"))) & ""
<!--#include file="includes/connstring.asp" -->
[b]Connect.Execute "Update Counter SET Numero = Numero + 1 Where Reference = '" & replace(Reference,"'","''") & "'" ,rows,128[/b]
If  Rows = 0 Then
	Connect.Execute "Insert into Counter(Reference,Numero) Values(" & Reference & ",1)",,128
End If
%>
```

Den markerade raden blir det om man räknar \<!--#include file="includes/connstring.asp" --\> som  en ad och inte vad den innehåller...

 :)

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

## #17 — trexter.com, 2002-10-20T15:13Z

btw, counter är inte reserverat?!

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

## #18 — LarsG, 2002-10-20T15:14Z

Jo, i Access så är det det.

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

## #19 — @nders, 2002-10-20T15:14Z

Du ska inte ha includen inne i asp-context. Du skall alltså i din includefil ha \<% och %\> runt innehållet, och lägga includedirektivet 'löst' i din asp-fil. (precis som du gjort ett par rader ovan den raden).

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

## #20 — @nders, 2002-10-20T15:16Z

<http://www.aspfaq.com/show.asp?id=2080>

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/56584-sql-fråga  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/56584-sql-fråga/page2.md
