---
title: "Databas koppling"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/100657-databas-koppling"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "dreas"
published: "2004-03-30T21:30:20.000Z"
updated: "2004-04-08T06:59:46.000Z"
replies: 17
views: 838
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/100657-databas-koppling"
---

# Databas koppling

## #1 — dreas, 2004-03-30T21:30Z

Hej!
Snabb fråga, gärna med ett snabbt svar (lite tajt om tid).

Jag har gjort en s.k. fejkad databaskoppling med följande kodsnutt:

set conn=server.createobject("adodb.connection")
path="DBQ=" & server.mappath("psarosflyfishing.mdb")
conn.open "driver={microsoft access driver (\*.mdb)}; " & path,"name","name"

sql = "select \* from Customers order by ID DESC"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

Denna har alltid fungerat tidigare, har dock aldrig prövat på nuvarande webbhotell förrän nu. Och jag får följande felmeddelande:

ADODB.Connection.1 error '800a0bb9' 

The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another. 

/registerDone.asp, line 21 

Line 21 är:
conn.open "driver={microsoft access driver (\*.mdb)}; " & path,"name","name"

Tydligen så verkar den inte hitta databasen, eller har jag fel i detta? Kan/ska jag skriva en direktlänk till databasen istället för som nu??

Väldigt tacksam för svar

Mvh
/Andreas

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

## #2 — Palle, 2004-03-31T07:40Z

Bättre variant.. 

```
[red]Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("psarosflyfishing.mdb")
		Set rs = Conn.Execute("SELECT * FROM Customers ORDER BY ID DESC")
	
			'// Gör nått..

			rs.Close
		Set rs = Nothing
	Conn.Close
Set Conn = Nothing[/red]
```

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

## #3 — Poffe, 2004-03-31T10:13Z

Palle, man behöver väll inte anävnda rs.Close om man inte har använt rs.Open?

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

## #4 — @nders, 2004-03-31T10:32Z

Recordsetet öppnas iom **Set rs = Conn.Execute...**, så då borde det stängas också.

Mvh

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

## #5 — Poffe, 2004-03-31T11:00Z

Tack för infon @!

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

## #6 — magnusfernstrom, 2004-03-31T15:37Z

En fråga: Varför ska men ha en fejk connection för?

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

## #7 — Poffe, 2004-03-31T18:38Z

fejk connection?

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

## #8 — dreas, 2004-04-01T18:15Z

Tack för svaret Palle!
Men det du skrev var väl bara en annan, enklare och renare, kod som gör exakt samma sak.. eller tar jag fel?

Jag testade ivarje fall med din snutt, men får samma problem. Verkar som att sökvägen inte stämmer. Jag fick göra en "budget" lösning med att skriva in allt i en .txt fil istället och då verkar sökvägen inte vara något problem. Plus att det bevisar att det inte handlar om rättigheter för katalogen (skriv,läs osv).

Så.. nån/palle, nåt förslag på hur jag ska lösa detta? känns lite surt att inte kunna sparka igång databasen när man betalar för webbhotellet. Går det förresten för hotellet att låsa så att man inte kan göra en sådan databaskoppling - för att dem ska tjäna intäkter på en "riktig" koppling?

Mvh
/Andreas

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

## #9 — @nders, 2004-04-01T18:20Z

Hur ser din kod ut när du gör enligt Palles exempel? Du bör inte kunna få det felet med den koden. :)

Mvh

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

## #10 — dreas, 2004-04-01T21:19Z

Koden jag har skrivit är ju egentligen precis som palles:

          \<%
Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/u381/appsaros/database/customers.mdb")
		Set rs = Conn.Execute("SELECT \* FROM Customers ORDER BY ID DESC")

rs.addnew

rs("date") = date
rs("product") = request.form("rubrik")
rs("serial") = request.form("nyhet")
rs("name") = request.form("name")
rs("country") = request.form("country")
rs("address") = request.form("address")
rs("zip") = request.form("zip")
rs("mail") = request.form("mail")
rs("info") = request.form("info")

rs.Close
		Set rs = Nothing
	Conn.Close
Set Conn = Nothing 
%\>

Felmedddelandet ser lite annorlunda ut nu:
ADODB.Connection.1 error '80004005' 

SQLState: IM002
Native Error Code: 0
\[INTERSOLV\]\[ODBC lib\] Data source name not found and no default driver specified

/registerDone\_.asp, line 20 

Line 20 är:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("customers.mdb")

Problem med sökvägen?
Jag har testat lite olika varianter (dels den som fungerade för txt filen som jag nämnde ovan) utan resultat.

Trist med sånna här problem.. okej i själva koden, men fel i kopplingen \*suck\* 
jaja :)

Tacksam för svar!

Mvh
/Andreas

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

## #11 — @nders, 2004-04-02T04:06Z

Det luktar som att nuvarande webhotell inte kör asp på IIS, kan det stämma?

Du får nog gå tillbaka till access-drivern du hade med i ditt första inlägg, det borde se ut så här:

```
set conn=server.createobject("adodb.connection")
path="DBQ=" & server.mappath("psarosflyfishing.mdb")
conn.open "driver={microsoft access driver (*.mdb)}; " & path
```

Möjligen måste du också byta ut koden som lägger till data med .AddNew mot en INSERT-fråga i SQL.

mvh

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

## #12 — Engine^, 2004-04-02T08:08Z

Som felmeddelandet säger så är det ingen Accessdatabas utan en Interbase.

**Interbase connection strings**
ODBC, Intersolv

```
[u]Local[/u]
"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password" 

[u]Remote[/u]
"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"
```

Källa: <https://www.connectionstrings.com> :)

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

## #13 — dreas, 2004-04-02T11:33Z

Oj
Då blev allt genast mer komplicerat.
Funkar inte vanligt ASP kodning då eller? Anders, hur skulle denna SELECT kod se ut?

Engine: Interbase? Har nog aldrig hört talas om det. Är ingen nybörjare, men är \_definitivt\_ inget proffs. Hur menar du att jag ska koda? Är det remote koden jag ska använda mig av för att få det att fungera på nätet? Antar att man byter ut alla 'ComputerName' och id/pass.. vilket id/pass är det jag ska använda? Det är väl inte till servern som jag använder för ftp? 

Väldigt tacksam för fortsatt assistans

Mvh
/Andreas

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

## #14 — Engine^, 2004-04-02T11:48Z

**\[red.\]** Om webbhotellet kör något annat än IIS, så kan du inte använda dig av ASP. I det här fallet körs nog IIS med tanke på att du faktiskt får felmeddelanden. :)
Ibland tänker jag mig inte för när jag svarar ;)**\[/red.\]**

*SELECT kod* heter egentligen SQL-sats (konstig anmärkning från min sida :)) och hur den skrivs beror på vilket DBMS webbservern kör. Detta verkar vara Interbase, eftersom felkoden sade: \[INTERSOLV\]\[ODBC lib\] ...

Det hela borde, tycker jag, ordna sig om du använder dig av *local*\-kopplingssträngen (ick, nu ser jag varför jag inte gillar försvenskningar ;)), eftersom allting ligger "lokalt" på deras server. Eller?

Kolla runt lite mer på ditt webbhotell, så kan du nog få lite bättre svar på hur du ska gå tillväga.

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

## #15 — dreas, 2004-04-02T11:50Z

Hej igen.
Fick svar från webbhotellet när jag frågade om databas alternativ:
 
\----------
We currently have drivers on each ASP Linux server for the following Databases:

1) DB2 (not available on Linux, only on Solaris, AIX and HP-UX Operating Systems)
2) Dbase (available)
3) MySQL (available for Standard accounts, included with Commerce accounts and higher)
4) Informix (not available, requires Informix software)
5) MS SQL Server (not available, requires special software/server)
6) PostgreSQL (not available, requires special software/server)
7) Oracle (not available, requires special software/server)
8) Sybase (not available, requires special software/server)
9) Text file database (available)

Options 4-8 are only possible if you have the database and it's proper database server running elsewhere (i.e. SQL database w/ SQL7 Server).

MS Access: no drivers available (works only if database files reside on NT/2000 environment, elsewhere)

Dbase and Text File options are file-based type databases. The files need to be uploaded to the web server. 

MySQL is a server-based type database. No need to upload files to web server since they will reside on the MySQL server. 

NOTE: ASP communicates to Databases using DSN or DSN-less connections. DSN(Data Source Names) are just the specifications of any given database connection and include information such as drivers, location, server name, database name, username, password, etc. DSN should be specified in the configurations files of the server's registry (ODBC.INI). DSN-less need to be specified on the ASP pages or on the Global.asa file (located in the home directory of the ASP pages).

Since you are in a shared hosting environment, you won't have access to the server's registry or be able to modify the ODBC.INI file, hence, you need to use DSN-less connections.

Some known Database conversions/migrations are:

\* Access to MySQL
\* Access to Dbase
\* Dbase to MySQL
\* Excel to MySQL
\* Excel to Dbase

\----------

Så tydligen är det så att Access inte accepteras. Vad är det här Dbase dem pratar om? Någon som vet hur koden för databaskoppling ser ut för denna? Är det samma som Engine skrev?

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

## #16 — Engine^, 2004-04-02T11:58Z

Jag passar på att hänvisa till min källa igen :)

<https://www.connectionstrings.com>

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

## #17 — dreas, 2004-04-07T20:10Z

Tack Engine^ för hjälpen - den sidan var riktigt användbar!
Trots det så har jag inte lyckats få igång min databas :(
Får följande felmeddelande:

ADODB.Recordset.1 error '80004005' 

SQLState: S0002
Native Error Code: 1509
\[MERANT\]\[ODBC dBase driver\]File not found '/usr/local/casp/asp-apache-3000/Customers.DBF'.

/registerDone\_.asp, line 24 

Koden är:
\<%
set conn=server.createobject("adodb.connection")
conn.open "Driver={Microsoft dBASE Driver (/u381/appsaros/database/customer.dbf)};DriverID=277;Dbq=customer;" & path,"name","name"

sql = "select \* from Customers order by ID DESC"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

rs.addnew

rs("date") = date
rs("product") = request.form("rubrik")
rs("serial") = request.form("nyhet")
rs("name") = request.form("name")
rs("country") = request.form("country")
rs("address") = request.form("address")
rs("zip") = request.form("zip")
rs("mail") = request.form("mail")
rs("info") = request.form("info")

rs.update
rs.close
conn.close %\>

Rad 24 är:
rs.Open sql, conn, 3, 3

Usch.. har snart inge hår kvar, efter allt slitande i det ;)
OTROLIGT tacksam för all hjälp.

Vet inte ifall problemet ligger i databasen?
Har gjort någon slags konvertering i Access från en .mdb till en sk. .dbf databas

Tack på förhand
/Andreas

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

## #18 — Engine^, 2004-04-08T06:59Z

Du har fel sökväg till databasen uppenbarligen.

Varför har du specificierat (/u381/appsaros/database/customer.dbf)? Räcker det inte med (\*.dbf)

Jag rekommenderar också att du använder en OleDB-koppling, eftersom ODBC är förlegat.

```
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties=dBASE IV"
```

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

---

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