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
24 svar · 542 visningar · startad av plelkes
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å?
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
ytterligare en fråga:
visst måste jag spara även asp-sidorna i C:\Inetpub\wwwroot\Vatskebalans\ och inte bara databasen
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
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
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
@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?
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
@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. ;)
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
@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. ;)
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> </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 hittasDet 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
ett litet tillägg - hur skulle conn-strängen se ut med MapPath?
Ett tips: läs felmeddelandet en gång till.
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
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.
Nej, själva ASP-sidan har jag i en annan mapp på hårddisken...
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("vbalans.mdb")
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. ;)
Tack @nders och solbulle :bire
så om jag har allt i samma mapp så kan jag skriva
MdbFilePath = Server.MapPath("dabas.mdb")
och sedan: kör/http://localhost/mapp-namn/sida.asp