webForumDet fria alternativet
Logga in / Bli medlem

Access databas grunder

ASP

8 svar · 253 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Trådstart#1

Hej. Här kommer en nybörjarfråga.

Vad är syntaxen för att få en ASP sida att läsa ur en access databasfil. Båda filerna ligger i samma katalog på min server.

Skriv gärna ett exempel och förklara vad som gör vad.

Medlem sedan dec. 200012 464 inlägg
#2

Först så skall man öppna en connection till databasen, här finns ett exempel på det
http://cgi.webforum.nu/wf/arkiv/asp_faq.html#fel_1

sen så ställer man en sql-fråga för att hämta data. För att hämta data så använder man ett recordset

'connect är vårt connecton-objekt
'som har öppnats enligt exempel i
'länken
'
'bygg sql-fråga
sql = "select aleb,caleb from ogrish"
'skapa recordset
set rs = connect.execute(sql)

'hämta alla poster

while not rs.eof
'skriv ut värdet i kolumnen aleb
response.write rs("aleb") & "<br>"
'skriv ut värdet i kolumnen caleb
response.write rs("caleb") & "<br>"
'flytta till nästa post i recordsetet
rs.movenext
'om det är slut på poster så
'sätts eof (END OF FILE) till sant 
'och då avslutas loopen
wend
'stäng recordset
rs.close
'stäng connection
connect.close
Medlem sedan maj 20012 080 inlägg
#3

Tackar för svaret. Detta är mitt första försök. Som nybörjare inom detta område får jag lita mig till trial and error tekniken. Jag får följande fel. För ni som kan är det säkert uppenbart vad som fattas. Tacksam för hjälp så att jag kommer igång...

Microsoft VBScript runtime error '800a01a8' 

Object required: 'connect' 

/web2/mattias/foto_album/ph_databas.asp, line 19

Accessdatabasen (foto_album.mdb)och ASP sidan (ph_databas.asp) ligger i samma katalog på min II5 server.

<%
'***** Skapar Connection-objektet *****'
Set Databas = Server.CreateObject("ADODB.Connection")

'***** Specifierar sökvägen *****'
MdbFilePath = Server.MapPath("foto_album.mdb")

'***** öppnar databasen *****'
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

'connect är vårt connecton-objekt
'som har öppnats enligt exempel i
'länken
'
'bygg sql-fråga
sql = "select * from fotoalbum"
'skapa recordset
set rs = connect.execute(sql)
'hämta alla poster

while not rs.eof
'skriv ut värdet i kolumnen aleb
response.write rs("bild") & "<br>"
'skriv ut värdet i kolumnen caleb
response.write rs("rubrik") & "<br>"
'flytta till nästa post i recordsetet
rs.movenext
'om det är slut på poster så
'sätts eof (END OF FILE) till sant 
'och då avslutas loopen
wend
'stäng recordset
rs.close
'stäng connection
connect.close
%>
Medlem sedan feb. 20012 412 inlägg
#4

Hej, du använder 2 namn på ditt connectionobject, connect och Databas. Ändra så du får samma på alla ställen.

mvh Jörgen :)

Medlem sedan maj 20012 080 inlägg
#5

Hmmm. Jörgen kan du vara lite tydligare. Hittar inte något fel.
Mvh Mattias

Medlem sedan mars 2001243 inlägg
#6

har bytt ut namnet databas mot connect, du använder två olika namn på samma sak. testa denna kod:

<%
'***** Skapar Connection-objektet *****'
Set Connect = Server.CreateObject("ADODB.Connection")
'***** Specifierar sökvägen *****'
MdbFilePath = Server.MapPath("foto_album.mdb")

'***** öppnar databasen *****'
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

'connect är vårt connecton-objekt
'som har öppnats enligt exempel i
'länken
'
'bygg sql-fråga
sql = "select * from fotoalbum"
'skapa recordset
set rs = Connect.execute(sql)
'hämta alla poster

while not rs.eof
'skriv ut värdet i kolumnen aleb
response.write rs("bild") & "<br>"
'skriv ut värdet i kolumnen caleb
response.write rs("rubrik") & "<br>"
'flytta till nästa post i recordsetet
rs.movenext
'om det är slut på poster så
'sätts eof (END OF FILE) till sant 
'och då avslutas loopen
wend
'stäng recordset
rs.close
Set rs = Nothing
'stäng connection
Connect.close
Set Connect = Nothing
%>
Medlem sedan feb. 20012 412 inlägg
#7
<%
'***** Skapar Connection-objektet *****'
Set [b]Databas[/b] = Server.CreateObject("ADODB.Connection")
'***** Specifierar sökvägen *****'
MdbFilePath = Server.MapPath("foto_album.mdb")

'***** öppnar databasen *****'
[b]Databas[/b].Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

'connect är vårt connecton-objekt
'som har öppnats enligt exempel i
'länken
'
'bygg sql-fråga
sql = "select * from fotoalbum"
'skapa recordset
set rs = [b]connect[/b].execute(sql)
'hämta alla poster

while not rs.eof
'skriv ut värdet i kolumnen aleb
response.write rs("bild") & "<br>"
'skriv ut värdet i kolumnen caleb
response.write rs("rubrik") & "<br>"
'flytta till nästa post i recordsetet
rs.movenext
'om det är slut på poster så
'sätts eof (END OF FILE) till sant 
'och då avslutas loopen
wend
'stäng recordset
rs.close
'stäng connection
[b]connect[/b].close
%>

Hej, de markerade orden ska heta samma, förslagsvis Connect.

mvh Jörgen :)

Medlem sedan maj 20012 080 inlägg
#8

Det fungerar utmärkt. Fick det faktiskt att fungera innan jag läste detta. Ibland fungerar Trial n error men det är ju bättre om man vet vad man håller på med :e Tackar Jörgen och Ice...

Medlem sedan mars 2001243 inlägg
#9

Sedan kan du ju läsa ännu mer om databaser & sql på Vides hemsida webeye:
http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp8.asp

374 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
117 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)