---
title: "Reda ut det där med databaskopplingar..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/69423-reda-ut-det-där-med-databaskopplingar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-02-25T20:15:15.000Z"
updated: "2003-02-27T09:12:36.000Z"
replies: 21
views: 615
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/69423-reda-ut-det-där-med-databaskopplingar"
---

# Reda ut det där med databaskopplingar...

_Sida 1 av 2._

## #1 — plelkes, 2003-02-25T20:15Z

...skulle jag behöva hjälp med\*suck\*

1. jag antar att om man skall köra på typ Brinkster, så är DSN-löst att föredra. Rätt eller fel?

 

Men hur skall kopplingen skrivas? Webeye föredrar: 

> För Access 2000:
> \<%
> Set Databas = Server.CreateObject( "Adodb.Connection" )
> Databas.Provider = "Microsoft.Jet.OLEDB.4.0"
> MdbFilePath = Server.MapPath( "/cgi-bin/databas.mdb" )
> Databas.ConnectionString = "Data Source='" & MdbFilePath & "'"
> Databas.open
> %\>

 
Den i detta forum så förhatliga *webstudio*  rekomenderar:

> \<%	Set MinCon = Server.CreateObject("ADODB.Connection")
> 	MinCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=c:\\inetpub\\wwwroot\\databas\\adressbok.mdb" 
> 
> 	Set rs = Server.CreateObject("ADODB.Recordset")
> 
> 
> 
>    rs.Open Hamta, MinCon, adOpenStatic, adLockOptimistic %\>

 

Medan i boken  *Beginning ASP Databases, Wrox-förlag*   förordrar:

```
<% set conn=Server.CreateObject("ADODB.connection")
      set rs=Server.CreateObject("ADODB.recordset")
      strSource = strSource & "; DBQ=c:\inetpub\wwwroot\databas\adressbok.mdb" 
conn.ConnectionString =strSource
conn.Open
```

 

1. vilken av ovanstående metod skall jag välja?
2. varför just detta?

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

## #2 — Palle, 2003-02-25T20:28Z

Mig veteligen är det Vides förslag som är att rekommendera,
dock skriver jag ut den så här då jag tycker det ser enklare ut:

```
[RED]Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("databas.mdb")

       '// Gör en massa saker..

Connect.Close
Set Connect = Nothing[/RED]
```

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

## #3 — PatrikB, 2003-02-25T21:21Z

Jet Oledb 4.0 har funnits i många år. Tyvärr finns det fortfarande "klåpare" som använder sig av den "förkastilga" gamla access-drivern.
Jet Oledb 4.0 har typ 100 ggr så bra prestanda mot drivern. Finns en artikel ngnstans på 4guys som jag tyvärr inte hitta nu (finns ett par st där att leta bland) där de har ett performence test med olika drivisar och Jet 4 "vann" överlägset.

Så, använd Jet Oledb 4 sättet.

Den med att skriva in sökvägen direkt i öppnandet av recordsetet kan man oxå göra om det är ända hämtningen mot db.

Har inte sett eller gjort egna test med den varianten men kan tänka mig att connectionen skapas i ADODB.Recordset komponenten ..... 

Ett lätt sätt är ju att själv köra olika sorters test. Finns beskrivet i massor här på forumet. Sök på Timer() ..... blir nog en hel del :e

cya,
PatrikB
cya,
PatrikB

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

## #4 — plelkes, 2003-02-26T08:44Z

Jag blir förvirrad! Vet inte varifrån jag skall lära mig detta!
Har börjat på

- webstudio
- den av wf högt rekomenderade nybörjarboken: ASP av Erik Ronne
- Beginning ASP databases

 men  det de lär ut är inte hellt funkis enligt er gurus. Dessutom lär de ut på olika sätt\*suck och stön\*
Därför tänkte jag prova med ngn av följande

1. [Beginning Active Server Pages 3.0](http://www.bokus.com/cgi-bin/more_book_info.cgi?ISBN=1861003382)
2. [Lär dig ASP 3.0 på 3 veckor](http://butik.pagina.se/fb_produkt.asp?art=20625&Index=ja)

 

Vilken av böckerna anser ni vara mest korrekta?

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

## #5 — niko, 2003-02-26T09:36Z

*driver={Microsoft Access Driver (\*.mdb)};* är en **ODBC**\-driver.

*Provider = Microsoft.Jet.OLEDB.4.0* är en **OLEDB**\-driver.

OLEDB är en nyare standard för databasdrivisar än ODBC.

Nya standarder är oftast bättre/snabbare/stabilare än gamla standarder. I det enskilda fallet beror det naturligtvis på vem som skrivit drivern, men i detta fallet är Microsoft som skrivit båda. Av detta skäl bör man välja OLEDB-drivern.

ADO:n som oftast används i ASP har inget stöd för att direkt tala med ODBC-drivers. Väljer man ändå en sådan kommer ADO:n att lägga in en generell mellan-driver (en brygga). Detta ger ett onödigt mellanlager och är ytterligare en anledning till att välja OLEDB-drivern när man använder ADO:n.

Slutsats: Man använder ODBC bara om man måste.

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

## #6 — OveRRidE, 2003-02-26T10:00Z

> men det de lär ut är inte hellt funkis enligt er gurus. Dessutom lär de ut på olika sätt\*suck och stön\*

Jag tror inte du behöver krångla till det så mycket. Antagligen ser deras öppning av databasen annorlunda ut (de använder kanske en annan driver), men dett påverkar inte resten av koden nämnvärt. Kör med Jet OLEDB:n tills dess att den specifika koden i exemplena kräver (som niko sa ovan) att du kör ODBC.

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

## #7 — PatrikB, 2003-02-26T10:10Z

... och, du har frågat här oxå och jag gav detta svar: <http://www.webforum.nu/showthread.php?s=&postid=569112#post569112>

cya,
PatrikB

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

## #8 — plelkes, 2003-02-26T11:29Z

> ... och, du har frågat här oxå och jag gav detta svar: <http://www.webforum.nu/showthread.p...9112#post569112>

 Patrik: är väl medveten om "dubbelpostning", men i detta fall gjorde jag bedömningen att dubbelposting var försvarligt eftersom det hängde ihop med båda trådarna!\*ler\*

Däremot undrar jag över kodsnutten:

```
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("databas.mdb")

       '// Gör en massa saker..

Connect.Close
Set Connect = Nothing
```

 

- räcker det verkligen med Seerver.MapPath("databas.mdb")?
- varför inte Server.MapPath( "/cgi-bin/databas.mdb" ) ?
- eller c:\\inetpub\\wwwroot\\databas\\adressbok.mdb
- och varför inte det - tacksam för "pedagogisk" förklaring

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

## #9 — OveRRidE, 2003-02-26T11:50Z

Vill du bygga en dynamisk webbplats som har stöd för att flyttas till andra servrar som inte har samma fysiska katalogstruktur som din egen, då måste du använda server.mappath. Och ja, de räcker att skriva bara namnet på databasen, förutsatt att den ligger i samma mapp som den anropas ifrån. I en cgi-bin-mapp ser jag ingen anledning att ha en databas i, döp den till 'data' istället och lägg den där i, eller ännu bättre, utanför webbroten.

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

## #10 — plelkes, 2003-02-26T12:42Z

Tack för ditt snabba och pedagogiska svar OveRRidE\*ler\*

Ditt inlägg föranleder dock två undringar

> I en cgi-bin-mapp ser jag ingen anledning att ha en databas i, döp den till 'data' istället och lägg den där i, eller ännu bättre, utanför webbroten.

 
Hur skulle Server.MapPath ( ) se ut om:

1. databasen ligger i mappen "db"
2. databasen är utanför wwrooten  a) dels på hårddsiken, och dels på typ Brinkster

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

## #11 — Vide, 2003-02-26T13:36Z

Om mappen databasen ligger i är i samma nivå så rooten på din web:

```
strPath = server.mappath("/") & "/../db/dindatabas.mdb"
```

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

## #12 — solbulle, 2003-02-26T13:46Z

På Brinkster lärdu inteha en chans att lägga den utanför webbroten, där har jag för mig att du till och med måste placera den i en speciell mapp. (Med läs o skrivrättigheter.)

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

## #13 — Sebbe, 2003-02-26T13:53Z

> **solbulle skrev:**
>
> På Brinkster lärdu inteha en chans att lägga den utanför webbroten, där har jag för mig att du till och med måste placera den i en speciell mapp. (Med läs o skrivrättigheter.)

Joo, det stämmer. Jag själv har ju min sida på brinkster (ve och fasa ;)), och man MÅSTE placera databaser (och filer man skapar/skriver till med hjälp av FSO) i en mapp som heter db. Sorligt säger jag bara :p

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

## #14 — plelkes, 2003-02-26T16:38Z

Hej :q 

En fråga om nedanstående kodsnutt

> strPath = server.mappath("/") & "/../db/dindatabas.mdb

 
Säg att jag på min hårddisk har databasen i c:\\inetpub\\wwwroot\\databas\\databas.mdb

Blir då min databas 

```
Set Connect = Server.CreateObject("ADODB.Connection") 
Set strPath = server.mappath(”/”) & ”wwroot/db/databas.mdb
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("databas.mdb")
```

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

## #15 — Vide, 2003-02-26T18:30Z

Nä, jag antar att wwwroot är din rootkatalog, och dit kommer du med server.mappath("/"), så det är bara att stega in i db-mappen:

```
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& server.mappath("/") & "/db/databas.mdb"
```

Hur det ser ut på Brinkster vet jag inte, men jag kan anta att din rootkatalog inte är wwwroot, utan ett namn, vilket inte skall spela någon roll om personerna på Brinkster konfigurerat rätt. ;)

PS. Du skall inte ha *Set* framför när du tilldelar en variabel en sträng, endast när du tilldelar en variabel ett objekt. DS.

Mvh, Vide

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

## #16 — Pellefant, 2003-02-26T18:33Z

Intressant tråd detta. :)

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

## #17 — Engine^, 2003-02-27T07:58Z

> **Vide skrev:**
>
> Hur det ser ut på Brinkster vet jag inte, men jag kan anta att din rootkatalog inte är wwwroot, utan ett namn, vilket inte skall spela någon roll om personerna på Brinkster konfigurerat rätt. ;)

Känns pålitligt ;)

**MapPath** — to map the current virtual path to a physical directory structure. You can then pass that path to a component that creates the specified directory or file on the server.

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

## #18 — plelkes, 2003-02-27T08:39Z

Tack för all hjälp, ni är fantastiska - fast det visste jag ju sen förrut :birp 

Här kommer lite flera frågor - hoppas ni står ut med mig ;) 

Fick denna kod snutt från VIde:

```
Data Source ="& server.mappath("/") & "/db/databas.mdb"
```

 

- skulle vara tacksam lite förklaring, eller hänvisning till lämplig länk

 Dessutom skrev Vide även

> Du skall inte ha Set framför när du tilldelar en variabel en sträng, endast när du tilldelar en variabel ett objekt

 

- vet att detta är ett ASP-forum, men har ni förslag på en pedagogisk och bra bok i SQL?

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

## #19 — Vide, 2003-02-27T09:03Z

Data Source ="& server.mappath("/") & "\\db\\databas.mdb"

Data Source är en paramenter till ADO. Du tilldelar den värdet av en sökväg.

Server.MapPath("/") åter ger en sträng som innehåller den lokala sökvägen till den virtuella root du står i.
T.ex: "C:\\inetpub\\wwwroot"

Till detta häktar vi på en sträng för att fullborda sökvägen till databasen.

server.mappath("/") & "\\db\\databas.mdb"
... blir...
"C:\\inetpub\\wwwroot\\db\\databas.mdb"
Alltså den sökvägen till databasen. Du kan anropa denna kodsnutt i vilken mappstruktur som helst under samma root och ändå få samma sökväg.

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

## #20 — Vide, 2003-02-27T09:07Z

> **plelkes skrev:**
>
> Dessutom skrev Vide även
>
> > Du skall inte ha Set framför när du tilldelar en variabel en sträng, endast när du tilldelar en variabel ett objekt
>
>  
>
> - vet att detta är ett ASP-forum, men har ni förslag på en pedagogisk och bra bok i SQL?

Hur variabler i VBS fungerar har inget med SQL att göra. :)
Jag personligen har än så länge inte hittat någon bok som håller något bra mått, men det lär finnas, det får någon annan tipsa som inte är så kritisk. ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/69423-reda-ut-det-där-med-databaskopplingar  
Nästa sida: https://www.webforum.nu/amne/asp/69423-reda-ut-det-där-med-databaskopplingar/page2.md
