webForumDet fria alternativet

Visa information från databas

ASP

7 svar · 265 visningar · startad av Fredrik.an

Medlem sedan sep. 2001162 inlägg
Frågan#1

Jag håller på att lära mig asp, och det vill sig inte riktigt... Jag har skapat en databas som heter db. Sen ska jag hämta ut information ifrån den, men det vill inte riktigt funka...

Vad rä felet?

<!-- #include file="adovbs.inc" -->

<HTML>

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=db.mdb"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Hamta = "SELECT * FROM bok WHERE ID = 1 "
RecSet.Open Hamta, Connect, adOpenStatic, adLockOptimistic %>

<% =RecSet("bok1") %> <% =RecSet("ar") %><BR>

<% RecSet.Close %>
<% Connect.Close %>

</HTML>
Medlem sedan sep. 20026 425 inlägg
#2

Men.. det där ser rätt ut. Du kan dock skippa några <% och %>-tecken.

<% =RecSet("bok1") %> <% =RecSet("ar") %>

kan skrivas

<% Response.Write RecSet("bok1") & " " & RecSet("ar") %>

i stället, och

<% RecSet.Close %>
<% Connect.Close %>

ska vara

<% RecSet.Close : Set RecSet = Nothing
Connect.Close : Set Connect = Nothing %>

Dessutom har du glömt lite HTML-taggar som ska finnas på en giltig HTML-sida.

Får du något felmeddelande?

PS. ASP är inte bra att lära sig nu, lär dig ASP.NET i stället. DS.

Medlem sedan mars 20032 667 inlägg
#3

Webstudioskolan?

Jag skule vilja rekommendera dig att skriva så här:

<HTML>

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=db.mdb"

Hamta = "SELECT bok1, ar FROM bok WHERE ID = 1 "
set RecSet = Connect.execute(Hamta)

response.write RecSet("bok1") & RecSet("ar") & "<br />"

<% 
RecSet.Close() 
set RecSet = nothing
Connect.Close() 
set Connect = nothing
%>

</HTML>

Vad får du för felmeddelande?

Medlem sedan sep. 2001162 inlägg
#4

Funkar ju ändå inte...
Grejejn är att jag får inte upp något felmeddelande...

Medlem sedan mars 20032 667 inlägg
#5

Två frågor:

Har du vänliga felmeddelande på i din webbläsare?
Kör du ASP på en linuxserver?

Medlem sedan mars 20023 561 inlägg
#6

Jag skulle skriva koden på detta sätt:

<HTML>

<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")

Hamta = "SELECT * FROM bok WHERE ID = 1 "
RecSet.Open Hamta, Connect, 1,2

Response.Write(RecSet("bok1") & " " & RecSet("ar") & "<br>")

RecSet.Close : Set RecSet = Nothing
Connect.Close : Set Connect = Nothing
%>
</HTML>

Dock tycker jag att du inte ska använda ADODB.RecordSet på det sättet. Gör så här istället:

Set RecSet = Connect.Execute(Hamta)

Och flytta Hamta till innan den raden.

Medlem sedan feb. 20032 027 inlägg
#7

varför inte ha kopplingen i en fil och bara hämta med <%rs=objConn.execute("select * from tabell")%>
och sen skriva ut med <%=rs("kolumnnamn")%>

Min koppling är

<%
Function connect()
	Dim objConn
	Set objConn = Server.CreateObject("ADODB.Connection") 
	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/min databas.mdb") & ";"
	Set connect = objConn
End Function

set objConn = Connect()
%>

Jag inkluderar filen och kör med ovanstående, ren och fin kod

Medlem sedan mars 20023 561 inlägg
#8
<%
Function OpenConnection()
     Dim objConn : Set objConn = Server.CreateObject("adodb.Connection")
     objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("[i]databas.mdb[/i]")
End Function

Function CloseConnection()
     objConn.Close : Set objConn = Nothing
End Function
%>

Och sedan bara skriva Set objRs = objConn.Execute("sql-sträng") är isåfall snyggare (enligt mig).

256 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)