webForumDet fria alternativet

hämta information ur databas

ASP

9 svar · 293 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

Hej,
försöker lära mig ASP....
Just nu försöker jag med en adressbok, där man kan välja vilken bokstav som skall visas. Men jag får inte det hela att fungera!! Det enda som händer är att html-koden visas men inga informationer från databasen.
Vilka fel hittar ni i nedanstående?

<html>

<!-- #include virtual="/databas/adovbs.inc" -->

<%	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")

	If Request.QueryString("ordning") = "A" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'A*'"

	ElseIf Request.QueryString("ordning") = "B" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'B*'"

   ElseIf Request.QueryString("ordning") = "C" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'C*'"
  ElseIf Request.QueryString("ordning") = "G" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'G*'"

   End If

   rs.Open Hamta, MinCon, adOpenStatic, adLockOptimistic %>

	Hittade följande personer:<p>

	<ul>

<%	Do Until rs.EOF %>

	<li><% =rs("Fornamn") %>&nbsp;<b><% =rs("Efternamn") %></b><br>
       <% =rs("Adress") %><hr noshade size="1">

<%	rs.MoveNext
	Loop
	rs.Close 
	MinCon.Close %>

   </ul>

</html>

Bifogar hela mappen som har addressen: C:\Inetpub\wwwroot\databas

Medlem sedan mars 2002823 inlägg
#2

glömde en sak..

Medlem sedan jan. 20032 285 inlägg
#3
<html>

<!-- #include virtual="/databas/adovbs.inc" -->

<%	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")

	If Request.QueryString("ordning") = "A" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'A[b]%[/b]'"

	ElseIf Request.QueryString("ordning") = "B" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'B[b]%[/b]'"

   ElseIf Request.QueryString("ordning") = "C" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'C[b]%[/b]'"
  ElseIf Request.QueryString("ordning") = "G" Then
  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE 'G[b]%[/b]'"

   End If

   rs.Open Hamta, MinCon, adOpenStatic, adLockOptimistic %>

	Hittade följande personer:<p>

	<ul>

<%	Do Until rs.EOF %>

	<li><% =rs("Fornamn") %> <b><% =rs("Efternamn") %></b><br>
       <% =rs("Adress") %><hr noshade size="1">

<%	rs.MoveNext
	Loop
	rs.Close 
	MinCon.Close %>

   </ul>

</html>
Medlem sedan mars 2002823 inlägg
#4

Om jag fattat så bytte du bara * mot
%
Då hade Ronne fel i sin bok...

Medlem sedan mars 20015 287 inlägg
#5

Kanske?

<html>
<%	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")

  Hamta = "SELECT * FROM adressbok WHERE Efternamn LIKE '" & Request.QueryString("ordning") & "%'"

   rs.Open Hamta, MinCon, 3, 3 %>

	Hittade följande personer:<p>

	<ul>

<%	Do Until rs.EOF %>

	<li><% =rs("Fornamn") %> <b><% =rs("Efternamn") %></b><br>
       <% =rs("Adress") %><hr noshade size="1">

<%	rs.MoveNext
	Loop
	rs.Close 
	MinCon.Close %>

   </ul>

</html>
Medlem sedan mars 2002823 inlägg
#6

Solbulle: Elegant lösning du hade som fungerar. Men:

  • fördelar/nackdelar med din lösning?
  • Är det sant att SQL sturntar i mellanslag?
rs.Open Hamta, MinCon, 3, 3

Vad betyder de två 3 i koden?Sebbe: även din läsning fungerar bra. tack. Blir bara lite förvirrad, för Ronne på s223 använder * för just såna tillfällen.
Slutligen ngra "mellanslagsfrågor":
i

<% =rs("Adress") %>
  1. vad händer om jag skulle skriva : <% = rs("Adress") %>
  2. vad händer om jag skulle skriva: <% = rs("Adress") %>dvs mellansla mellan % och )
Medlem sedan jan. 20032 285 inlägg
#7

Jag tror nog inte det spelar någon roll hur du skriver det.

Och de två treorna är Cursortype och Locktype i ett recordset. Fråga mig inte vad dom gör... :p :OO

Medlem sedan mars 20002 836 inlägg
#8

3:orna bestämmer hur recordsetet ska öppnas, vad du kan göra med reocordsetet.

Som du nu öppnar det med 3,3 så är det det sämsta sättet att öppna det på rent prestandamässigt och i ditt fall ser jag inte att du ska lägga till något nytt till db utan bara hämta och visa.
Då räcker det med 0,1 .... vill man bygga till med paging krävs dock att man öppnar det 1,3

Vad dessa siffror betyder kan du läsa i ADO SDKn (https://www.microsoft.com/data)

eller sök här på wF ... finns förklarat på många olika ställen ... om jag inte minns fel :e

cya,
PatrikB

Medlem sedan sep. 2002538 inlägg
#9

ASP är inte lika känsligt som C++/C när det gäller mellanslag emellan saker och ting, eller stora och små bokstäver.

Analysera följande vilket är korrekt och alla Response.write skriver ut "Sida<br>"

[red]
<%

Response.write "Sida<br>"
Response.write"Sida<br>"
Response.write ("Sida<br>")
Response.write("Sida<br>")
Response.write          ("Sida<br>")
Response.write                  ("Sida<br>")
Dim SiDa
SiDa = "Sida<br>"
Response.write(sida)
Response.write(sIdA)
Response.write(     SiDa)

%>
  [/red]
Medlem sedan mars 20015 287 inlägg
#10

PatrikB skrev:

Som du nu öppnar det med 3,3 så är det det sämsta sättet att öppna det på rent prestandamässigt och i ditt fall ser jag inte att du ska lägga till något nytt till db utan bara hämta och visa.
Då räcker det med 0,1 ....

Vi lär oss hela tiden :)

Hur som helst, bara att slippainkludera adobvs.inc är väl en "vinst" i sig?

267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)