---
title: "Databas connections"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12804-databas-connections"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Patrik81"
published: "2001-11-24T16:18:00.000Z"
updated: "2001-11-24T19:58:00.000Z"
replies: 12
views: 335
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/12804-databas-connections"
---

# Databas connections

## #1 — Patrik81, 2001-11-24T16:18Z

Alltså, jag har försökt, ohjag har försökt igen, och så har jag försökt lite till, men jag har inte förstått det till 100% (uppenbarligen), så jag ser som enda möjliga utväg att komma hit där jag vet att sakerna funkar och det finns smarta personer som kan det jag inte kan.

Jag har ännu inte fullt ut greppat det här med Recordsets, och när man skall använda Set Connection etc, 
men jag antar att man använder reordsets när man vill ha tillbaka ett värde från en databas, medan man bara använder Conn.Execute om man vill skicka ett värde till databasen, eller?

Jag skulle vara så himmelskt tacksam för två kod-syntax:er, en för när man kopplar upp mot en databas och hämtar hem värden, och stänger ned anslutningen, och en där man kopplar upp och bara skickar data till databasen för att sedan stänga anslutningen...
För jag kollrar jämt bort mig...

Och om någon sedan kan peka mig till en sida där jag kan läsa mer om Recordsets och alla hmm jag vet inte facktermen för det men jag har sett typ Recordset.Eof och sådana saker, och dessa utökningar (.Eof) et var man kan läsa om dem, så jag kan lära mig vilka som finns och hur man använder dem.
Typ .eof eller .close .GetRows etc...

Tack på förhand
 \- Patrik

Oops kanske skall nämna att jag jobbar med MySQL lokalt på min dator med PWS som serversimulator...

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

## #2 — LarsG, 2001-11-24T16:34Z

Alla metoder och länkar till annat som finns i ADO
 <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadomethods.asp?frame=true&hidetoc=true> 

Set använder man när man skapar ett nytt objekt eller om du vill tilldela ett objekt ett nytt värde.

Det finns flera inlägg som handlar om hur man gör en uppkoppling mot Mysql, dels i detta forum och dels i Mysql-forumet så om du gör en sökning på med nyckelorden MYSQL ASP så hittar du flera exempel.

Hämta data

```
'skapa connectionobjekt
set connect = server.createobject("adodb.connection")
connect.open "dsn"

'skapa ett recordset
set rs = connect.execute("select * from t"
'gå igenom alla rader till eof (end of file)
while not rs.eof
'fälten i recordsetet får samma namn
'som kolumnerna i tabellen
'skriv ut en kolumn
response.write rs("kolumn1")
'hämta nästa post från databasen
rs.movenext
wend
'stäng recordsetet
rs.close
'ta bort objektet
set rs = nothing
'stäng connection
connect.close
set connect = nothing
```

uppdatera data, då behövs inget recordset, bara en connetion

```
set connect = server.createobject("adodb.connection")
connect.open "dsn"
connect.execute "update t set c1 = " & request.form("c1") & " where id = " & request.form("id")
connect.close
set connect = nothing
```

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

## #3 — Patrik81, 2001-11-24T16:40Z

LarsG du är en ängel!
Nu skall vi se omjag inte kan sitta och pilla lite med detta hela natten lång och få till det.
Tack så jättemycket!

MVH Patrik

PS. Jaghar verkligen försökt läsa alla de andra diskussionerna här om asp och mysql men det finns en massa olika sätt att göra allt på med dsn-less connections och massa variationer, så jag kollrade bort mig på det. Men det här var super!
DS.

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

## #4 — Patrik81, 2001-11-24T17:29Z

Medan jag ändå håller på så kan jag ju passa på att fråga då...

Om man vill jämföra ett värde hämtat från en databas med ett värde man just fått från användaren så kan man väl göra såhär va?

```
If 
 strVardeFranAnvandaren <> rs("VardeFranDatabas") Then
  blablabla
 Else
  Blablabla
End If
```

istället för 

```
response.write rs("kolumn1")
```

(från tidigare exempel)

eller?

och ja just det ja... det var ju det jag tänkte på..
om man vill hämta ett enda värde från en tabell typ ett namn, värdet från en enda cell i en rad i en tabell, (man vet exakt vilken tabell oh vilken rad och vilken cell) men behövs det verkligen en reordset till det?

Återigen tacksam för svar
MVH Patrik

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

## #5 — LarsG, 2001-11-24T17:35Z

Jo, det går att jämföra på det sättet. Om möjligt är det bäst att ställa villkoret i sql-frågan

Om du skall hämta något från en databas så måste du alltid använda ett recordset. Det är oavsett hur resultatet ser ut.

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

## #6 — icaaq, 2001-11-24T17:35Z

> Om man vill jämföra ett värde hämtat från en databas med ett värde man just fått från användaren så kan man väl göra såhär va?
>
> If 
> strVardeFranAnvandaren \<\> rs("VardeFranDatabas") Then
> blablabla
> Else
> Blablabla
> End If

ja

> och ja just det ja... det var ju det jag tänkte på..
> om man vill hämta ett enda värde från en tabell typ ett namn, värdet från en enda cell i en rad i en tabell, (man vet exakt vilken tabell oh vilken rad och vilken cell) men behövs det verkligen en reordset till det?

joo det behövs ett recordset för det...det kan ju se ut som så här

```
strSQL = "SELECT fältnamn from databas WHERE fältID = 1"
Set ObjRS = ObjConn.Execute(strSQL)
If ObjRS.EOF Then
'Ingen post fanns där
Else
skriv ut posten 
End If
```

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

## #7 — Patrik81, 2001-11-24T17:57Z

Sista frågan nu \*lovar\*
;)

Jaja. Jag har glömt fråga detta nu i de tidigare inläggen, jag har haft det i bakhuvudet mne hela tiden glömt just den frågan...

Jag köpte en bok om asp, har den tyvärr inte i närheten just nu, men den hette något i stil med "Learn ASP in 24 hours"
ja iallafall så har jag av den fått lära mig att man längst upp i koden bör ööö, återigen ingen fackterm... men man bör skriva typ:

```
Dim strStrang1, strStrang2 etc...
```

för att, jag vet inte, men boken gjorde så och det är den jag har till grund för min kunskap... så iallafall frågan då...
det här med att lägga till str framför Strang1 antar jag bara är för att förenkla för läsaren av bken, eller? För jag ser inte många str framför era strängar i era kodexempel här på forumet...

ojdå, kom på en jättesnabb fråga också angående kodsnutten jag fick av LarsG

```
response.write rs("kolumn1")
```

jag tycker den ser lite konstig ut... jag ifrågasätter inte ditt kunnande, men, (enligt min bok) bör man inte typ skriva 

```
response.write(rs("kolumn1"))
```

eller funkar båda eller har jag fel?
\*det är myket möjligt att jag har fel för jag brukar bara använda \<%= strStrang1 %\> inbäddad i html koden (även om detta sättet är slöare än att skriva ut all html kod med response.write) men jag undrar, och jag vet ju att svaren jag får härifrån håller hög kvalitet så bättre att fråga här än någon annanstans...

Tack så mycket för alla svaren, gissa om jag fört anteckningar oh sparat ned den här filen till datorn för att spara och kunna använda vid senare tillfällen.
Det har varit en synnerligen produktiv och lärorik dag idag

Tack alla som svarat
MVH Patrik

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

## #8 — LarsG, 2001-11-24T18:09Z

Att använda dim är bra speciellt om du använder 

```
option explicit
```

överst i din kod. Då får du en kontroll på att alla variabler är med i en Dim-sats. På så sätt så kan man undvika slarvfel som beror på att man använder felaktiga variabelnamn. Det är också fördelaktigt ur prestandasynpunkt att använda dim. 
Att prefixa variabelnamn är jag inte speciellt förtjust i, men det är ju upp till var och en.

Att skriva 

```

response.write(rs("x"))
```

är egentligen inte riktigt. Om man anropar en sub eller en metod som inte returnerar något värde så skall man inte använda parenteser men ovanstående godkänns i alla fall av kompilatorn. 

Däremot om du skriver

```
sub testing(a,b)
response.write a + b
end sub

testing (12,7)
```

så får du fel. I det här fallet så får man inte ange parenteser utan måste skriva

```

testing 12,7
```

Det är ju lite inkonsekvent, så det är alltså enklast att alltid utelämna parenteserna.

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

## #9 — Patrik81, 2001-11-24T18:29Z

Så har man lärt sig ytterligare något idag
;)
Tack så mycket
och ja jag använder mycket riktigt Option Explicit på andra kodraden
första för @LANGUAGE = VBScript...

Tack så mycket

MVH Patrik

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

## #10 — PatrikB, 2001-11-24T18:35Z

Att prefixa variabelnamn tycker jag är bra.
tex: strVariabel talar om att variabeln är av String typ och intVariabel talar om att den är av heltalstyp, objVaraibel att det är ett object. Sedan kan man om man vill om man håller på med object tala om vad för typ av object det är genom objConn, objRSUsers etc där objConn talar om att det är ett connection object och objRSUsers talar om att det är ett recordset object innehållande avnändarinfo m.m

Speciellt trevligt blir det när man kikar i någon annans kod att få en förståelse snabbt av vad som är vad, för vilket är värre än att kika på kod som någon annan utvecklat och så ser man till exempel ett connection object som heter BlaBla .... man förstår inte direkt vad det är för något =P

Att prefixa variablerna på detta sätt kallas ungersk notation.

Kika på detta inlägg: <http://cgi.webforum.nu/wf/Forum11/HTML/002688.html>  

cya,
PatrikB

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

## #11 — PatrikB, 2001-11-24T19:15Z

```
<%@LANGUAGE=VBScript%>
```

är bara onödigt att använda sig av då jag vill påstå att "alla" IIS Servrar har redan VBScript som default språk och då faller just @language

cya,
PatrikB

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

## #12 — Patrik81, 2001-11-24T19:16Z

Personligen tycker jag det är VÄLDIGT smidigt med Ungersk Notation (ytterligare en sak jag lärt mig idag, en fackterm den här gången ;)

det där med att man aldrig kan råka ut för att man använder reserverade ord i sql har jag aldrig tänkt på förut, men det är ju en stor fördel.
förstår inte varför det skulle vara förlegat, det blir ju enklare på det viset, ok att man använder tre tecken mer för varje gång man använder en sträng eller så, men det överlever jag allt.

MVH Patrik

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

## #13 — Patrik81, 2001-11-24T19:58Z

Jaja, den raden kanske är onödig, men jag har använt den så länge nu på alla sidor jag skrivit så jag skulle tycka det så konstigt ut om den inte fanns med....

\*jag är väl bara en enfaldig konservativ dumjäkel, men jag tycker den ser så fin ut där den ligger ;) \*

MVH Patrik

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12804-databas-connections
