webForumDet fria alternativet

PWS och MapPath

ASPur ASP

24 svar · 542 visningar · startad av plelkes

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

Eftersom brinkster bråkar, har jag åter beslutat att installera PWS

Om jag använder nedanstående kod:


1.	Set objConn = Server.CreateObject("ADODB.Connection")
2.	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "/****" )
3.	strSQL = "....."
4.	Set objRS = objConn.Execute(strSQL)
5.	‘
6.	‘
7.	‘
8.	objRS.Close
9.	    Set objRS = Nothing
10.	    objConn.Close
11.	    Set objConn = Nothing

och addressen lokalt är:
C:\Inetpub\wwwroot\Vatskebalans\vbalans.mdb
Hur skall min Server.MapPath se ut då?

Medlem sedan juni 200032 969 inlägg
#2

Det beror på var databasfilen ligger i förhållande till webroten (eller aktuell asp-fil), men min gissning ser ut så här:

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/Vatskebalans/vbalans.mdb")

Mvh

Medlem sedan mars 2002823 inlägg
#3

ytterligare en fråga:
visst måste jag spara även asp-sidorna i C:\Inetpub\wwwroot\Vatskebalans\ och inte bara databasen

Medlem sedan juni 200032 969 inlägg
#4

Nej, du sparar sidorna som pratar med databasen var du vill, så länge sökvägen till databasen är korrekt i din connectionstring.

Mvh

Medlem sedan mars 2002823 inlägg
#5

aha,
i mitt fall ligger aspfilen i C:\Mina_projekt\dw\vatskebalans\1.asp

databasen i :
C:\Inetpub\wwwroot\balans\vbalans.mdb

Hur skall då sökvägen till databasen vara i min conn?

Och för att testa sidan skriver jag:
http://localhost/balans/1.asp

Medlem sedan juni 200032 969 inlägg
#6

Du måste ju inte använda Server.Mappath.

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\balans\vbalans.mdb"

Mvh

Medlem sedan mars 2002823 inlägg
#7

@nders skrev:

Du måste ju inte använda Server.Mappath.

kod:--------------------------------------------------------------------------------objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\balans\vbalans.mdb"--------------------------------------------------------------------------------
Mvh

Fördelar och nackdelar med ovanstående lösning?

Medlem sedan juni 200032 969 inlägg
#8

Nackdel är att du måste ändra sökvägen när du lägger upp hemsidan på någon annan maskin.

Fördel: Det är ju bra att slippa använda omvandlingsfunktioner (ex. Server.Mappath) om man inte måste.

Mvh

Medlem sedan feb. 200112 078 inlägg
#9

@nders skrev:

Fördel: Det är ju bra att slippa använda omvandlingsfunktioner (ex. Server.Mappath) om man inte måste.

Varför skulle det vara bra att slippa det?

Enligt mig så finns det ingen anledning att hårdkoda sökvägar till datafiler. Server.MapPath är en utomordentligt gullig funktion. ;)

Medlem sedan juni 200032 969 inlägg
#10

Exekveringen av kod går snabbare ju färre funktionsanrop man gör. Det beror givetvis på vilka funktioner det är tal om, och i detta fallet är det helt klart försumbart. Jag försökte bara hitta någon fördel. :)

Mvh

Medlem sedan feb. 200112 078 inlägg
#11

@nders skrev:

Exekveringen av kod går snabbare ju färre funktionsanrop man gör. Det beror givetvis på vilka funktioner det är tal om, och i detta fallet är det helt klart försumbart. Jag försökte bara hitta någon fördel.

Äh. Småpet. ;)

Medlem sedan mars 2002823 inlägg
#12

Undrar om det är fel på installationen av PWS eller ngt annat...
Nu har jag ändrat conn-strängen till:

<%@LANGUAGE="VBSCRIPT" "%>
<HTML>
<HEAD>
<TITLE>Untitled Document</TITLE>
</HEAD>
<%
If Request.QueryString("type") = "" Then
  intType = 1
Else
  intType = CInt(Request.QueryString("type"))
End If

Set objConn = Server.CreateObject("ADODB.Connection")
[B]objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\Vatskebalans\vbalans.mdb"[/B]
strSQL = "SELECT tblFluids.FluidNamn, tblFluidTypes.TypeNamn, tblFluidTypes.TypeID FROM " & _
         "tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND" & _
		 " tblFluidRelat.typeID = tblFluidTypes.typeID AND tblFluidTypes.TypeID = " & intType & " ORDER by tblFluidTypes.typeID"
Set objRS = objConn.Execute(strSQL)
If NOT objRS.EOF Then
%>
<table width="800" border="1">
		<tr>
		   <td>&nbsp;</td>
		   <td colspan="3"><%
			                Response.Write objRS("TypeNamn")
							objRS.Close
							       %>
		    </td>
		 </tr>
  				<tr> 
    				<td><%
					      intLast = objConn.Execute("SELECT Max(TypeID) FROM tblFluidTypes")(0)
							For i = 1 To intLast
  						  Set objRS = objConn.Execute("SELECT TypeNamn FROM tblFluidTypes WHERE TypeID = " & i)
							If NOT i = intType Then
    							Response.Write("<a href=""?type=" & i & """>" & objRS("TypeNamn") & "</a><BR> ")
						  objRS.Close
						  End If
						  Next
								%>
				     </td>
    					<td><% strSQL = "SELECT f.FluidNamn, ft.TypeNamn, ft.TypeID FROM tblFluidRelat fr, tblFluids f, tblFluidTypes ft WHERE fr.FluidID = f.FluidID AND fr.typeID = ft.typeID AND ft.TypeID = " & intType & " ORDER by ft.typeID"
Set objRS = objConn.Execute(strSQL)
%>
<table width="400" border="1">
<%
Do While Not objRS.EOF
     Response.Write "<TR><TD><INPUT NAME=""leggatill"" TYPE=""checkbox"" VALUE="""& objRS("FluidNamn") &"""></TD>"				
     Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
	 Response.Write "<TD><INPUT NAME=""volym"" TYPE=""text""></TD></TR>"
       objRS.MoveNext
    Loop
   End If
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
 %>
	</table></table>
<input type="submit" value="Lägg till Vätskebalansen">

</BODY>
</HTML>

Men om jag nu klickar på kör och
http://localhost/vatskebalans/fungerar.asp
så får jag

HTTP-fel 404
404 Skriptet kunde inte hittas

Det skript du efterfrågade kunde inte hittas av webbservern. Kontrollera att sökvägen i URL:en är riktig.

Kontakta serverns administratör om det här problemet kvarstår.

Däremot fungerar det om jag (kör dreamweaver mx) använder mig av Preview in Browser
Skumt, tycker jag

Medlem sedan mars 2002823 inlägg
#13

ett litet tillägg - hur skulle conn-strängen se ut med MapPath?

Medlem sedan feb. 200112 078 inlägg
#14

Ett tips: läs felmeddelandet en gång till.

Medlem sedan mars 2002823 inlägg
#15

OveRRidE skrev:

Ett tips: läs felmeddelandet en gång till.

Har läst hur många gånger som helst - utan att se felet

Medlem sedan mars 20015 287 inlägg
#16

Som sagt så hittas inte skriptet på den adress du anger. Har du verkligen skriptet där?
I denna post http://www.webforum.nu/showthread.php?s=&postid=760737#post760737 tycker jag mig se att du har det någon annanstans.

Medlem sedan mars 2002823 inlägg
#17

Nej, själva ASP-sidan har jag i en annan mapp på hårddisken...

  1. Men för att kunna testa mina alster hemma, måster jag väl använda mig av PWS?
  2. Bör jag därför flytta alla filler i samma mapp under wwwroot?
  3. Hur skulle conn-strängen se ut om asp-filen och databasen var i samma mapp under wwwrooten?
Medlem sedan juni 200032 969 inlägg
#18
  1. PWS passar bra för ändamålet.
  2. Ja, alla asp-sidor måste ligga i webroten som är definierad i PWS för att de ska exekveras.
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("vbalans.mdb")
Medlem sedan mars 20015 287 inlägg
#19

1. jo
2. tycker jag är en bra ide,eftersom att du då kan låta det se likadant ut där som sen på den skarpa servern.
3. Likadan.

Problemet som jag ser det är att du vill titta på https://www.webforum.nu , men skriver in https://www.eforum.se i browsern. ;)

Medlem sedan mars 2002823 inlägg
#20

Tack @nders och solbulle :bire

  1. så om jag har allt i samma mapp så kan jag skriva

    MdbFilePath = Server.MapPath("dabas.mdb")
    
  2. och sedan: kör/http://localhost/mapp-namn/sida.asp

134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)