- Access -

Access DSN-less forbindelse

Det smarteste er at gemme ens datakald i en include fil. På denne måde skal du kun ændre det et sted hvis du ønsker at skifte database, f.eks. til en SQL database.

<% 
  strConnect = "Data Source=d:\home\FTPBrugernavn\db\database.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

  ' Følgende kode gør at du kan stoppe adgangen til databasen hvis du skal opdatere den.
  strUpdate = "no"
  If strUpdate = "yes" Then
    Response.Write "<p>Siden er under opdatering. Kom tilbage om 5 minutter.</p>"
    Response.End
    ' Alternativt kan du slette ovenstående 2 linier og istedet bruge nedenstående til at kalde en anden fil.
    ' Response.Redirect("update.htm")
  End If
%>

Se avancerede muligheder for connection strings.

Et database udtræk

Her viser vi nogle navne fra en database som vi henter via vores connection string.

<html>
<!-- #include file="database.inc" -->
<head>
  <title>Contact information</title>
</head>
<body>

<%
  Dim objConn
  Dim objRec

  Set objConn = Server.CreateObject ("ADODB.Connection")
  Set objRec = Server.CreateObject ("ADODB.Recordset")

  objConn.Open strConnect

  objRec.Open "Contact", objConn, 0, 1, 2

  Do While Not objRec.EOF
    Response.Write objRec("Name") & "<br/>"
    objRec.MoveNext
  Loop

  objRec.Close
  objConn.Close
  Set objRec = Nothing
  Set objConn = Nothing
%>

</body>
</html>

Hvordan gør jeg?

  1. Gem din connection string i en fil med filnavnet database.inc
  2. Gem database koden i en fil med filnavnet visdatabase.asp
  3. Gem databasen database.mdb i din /db folder, altså ikke under /www folderen
  4. Upload filerne til dit webhotel og åben siden visdatabase.asp.

FAQ

Når jeg forsøger at skrive i min access fil siger browseren "updateable query requested", "Operation must use an updateable query" eller "Cannot update. Database or object is read-only"

Dette betyder at du ikke har rettigheder til at skrive til databasen. Det kan enten være fordi du beder Access om at skrive data med et read-only kald eller fordi du ikke har skriverettigheder til databasen. Er problemet manglende skriverettigheder er det sandsynligvis fordi du ikke skriver i den korrekte folder. Du bør bruge folderen d:\home\ftpbrugernavn\db\ til databaser og på Windows Frontpage webhoteller skal databaser ligge i denne folder.

Min side siger 'provider error' eller .mdb databasen virker ikke?

Fejlbeskeden stammer fra din ODBC (OLE-DB) driver, du har sandsynligvis uploadet en ny Access database til din hjemmeside, samtidig med at en bruger har forsøgt at tilgå den. Først skal det checkes at der ikke ligger nogen .ldb filer. Gør der det skal du slette dem. Evt. er din applikation også 'crashet' og den skal derfor unloades, bed os om at gøre dette via support formularen.
Du kan undgå disse crashes ved at lave 2 filer og indsætte en linie kode på alle de sider, som benytter databaseadgang:

update.htm
Denne fil skal indeholde den besked, du ønsker de besøgende skal få, mens du er ved at uploade den nye database. F.eks. "Siden er pt. under opdatering. Kom tilbage om 5 minutter.

update.inc Denne fil skal inkluderes på alle de sider, der benytter database adgang, og skal indeholde følgende kode:

<%
  update = "no"
  if update = "yes" then
    response.redirect("update.htm")
  end if
%>
Ændres update = "no" til update = "yes", vil brugeren automatisk blive redirigeret til update.htm siden.
Denne kode inkluderes på siderne ved at indsætte følgende på siderne:
<!-- #include file="update.inc" -->

Der ligger tit en .ldb fil med samme navn som min .mdb fil når jeg ftp-er ind, hvad er det?

Det er en fil som MS Access bruger til at holde styr på hvem der læser og skriver til databasen, dvs. det er Access der opretter og sletter filen og du kan derfor opleve den "komme og gå".

Hvorfor kan jeg ikke connecte til Access (ADODB.Connection error '800a0e7a', Provider cannot be found. It may not be properly installed.)?

Du bruger et ODBC kald der ikke er understøttet. Brug i stedet de langt hurtigere OLE-DB kald på connectionsupporten. På vores Windows 2000 servere med MDAC 2.6 installeret, understøttes ODBC forbindelser ikke længere.

Jeg kan ikke slette .ldb filen og mit site er 'gået ned', application restarting?

Dette er noget vi oplever fra tid til anden hvor Access bliver brugt (for) meget. For at undgå at det sker er det vigtigt at man undgår at redigere i databasen samtidig med at den bliver brugt ved brug af include filen beskrevet ovenfor. Det bedste er at skifte til MySQL der er en mere professionel løsning, dette kræver dog minimum et Ironsite SQL, se support på /support/mysql. Access er grundlæggende ikke bygget til brug på internettet, det kan aldrig anbefales og virker kun til mindre sites.

Hvad betyder 'Temporary (volatile) Jet DSN for process'?

Dette kan f.eks. betyde at din connection string ikke er korrekt. Nedenstående er et længere eksempel på 'fejl i connection string'.

Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 
'Temporary (volatile) Jet DSN for process 0x310 Thread 0x420 DBC 0xadb5024 Jet'.

/default.asp, line 5

Er der ingen kodefejl så er det et generelt tegn på at du har nået grænsen for hvad Access kan klare, du anbefales at opgradere til MySQL. Der er support omkring opgradering på MySQL siderne.

Hvordan laver jeg en "SQL query" i Access?

I Access XP (2002) skal du starte en query, og derefter vælge SQL view. I oversigten: Queries > Create query in Design view > Close > SQL "knap" eller View > SQL View.

Referencer

crossfit

"Team CrossFit Copenhagen takker for støtten fra Azero i vores kamp for at nå til CrossFit Games (VM) i Californien i Juli."

Nikolaj Rønnow

2015-01-19T11:02:53+00:00

Nikolaj Rønnow

crossfit
"Team CrossFit Copenhagen takker for støtten fra Azero i vores kamp for at nå til CrossFit Games (VM) i Californien i Juli."
eyeforimage

Azero has been Eye for Image's ISP from the very beginning. It's reassuring to know that they not only have a great array of products, but that we can always get relevant and timely information from their professional support team, by just picking up the phone and talking to someone.

Matt Coyle, Technical Copywriter / Eye for Image ApS

2015-01-20T03:47:24+00:00

Matt Coyle, Technical Copywriter / Eye for Image ApS

eyeforimage
Azero has been Eye for Image's ISP from the very beginning. It's reassuring to know that they not only have a great array of products, but that we can always get relevant and timely information from their professional support team, by just picking up the phone and talking to someone.

Kontakt Azero

Firmainformationer

Azero ApS
Stægers Alle 9A
2000 Frederiksberg
CVR: 36 96 60 41
VAT: DK28101759
KOB: 1191353

Telefon

Telefon: 38 19 50 17
 

Normal telefontid

Man-tor: 9:30-12:00 og 13:00-15:30
Fredag: 9:30-12:00 og 13:00-14:00