Avatar billede jr40 Nybegynder
01. april 2007 - 19:29 Der er 27 kommentarer og
1 løsning

Omskriv stien til min database

Hejsa Experten.dk brugere,

Er der nogle som kan hjælpe mig med af omskrive min db sti, da jeg lige har installeret iis på min computer, og skal have min asp side med database til af virke.

Her er stien til min database, som skal "skrives" ind i mine 2 db connections forneden:
C:\Inetpub\wwwroot\db\xxx.mdb


Første db connect:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/db.mdb")
%>

Anden db connect:
<%

Dim objConn
Sub OpenDataBase(strDBPath)
Dim strProvider
strProvider = ""
strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
strProvider = strProvider & "Data Source=" & Server.MapPath(strDBPath) & ";"
strProvider = strProvider & "Persist Security Info=False"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strProvider
End Sub
Sub CloseDataBase
objConn.Close
Set objConn = Nothing
End Sub

%>

Håber bigtime i kan hjælpe.
Avatar billede erikjacobsen Ekspert
01. april 2007 - 20:11 #1
I den første kan du selvfølgelig: Server.MapPath("C:/Inetpub/wwwroot/db/xxx.mdb")
Avatar billede jr40 Nybegynder
01. april 2007 - 20:36 #2
Ja okey tak, ved du også hvordan jeg omskriver min anden database connection.?
Avatar billede erikjacobsen Ekspert
01. april 2007 - 20:45 #3
Du kalder en metode med strDBPath som formel parameter. Der hvor du kalder, kan du jo bare skrive det samme.

Så vil begge nok virke - om det er den smarteste løsning må du lade tiden vise.
Avatar billede jr40 Nybegynder
01. april 2007 - 21:12 #4
erikjacobsen>>> Er det sådan her du mener:

<%

Dim objConn
Sub OpenDataBase(strDBPath)
Dim strProvider
strProvider = ""
strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
strProvider = strProvider & "Data Source=" & Server.MapPath("C:/Inetpub/wwwroot/db/db.mdb") & ";"
strProvider = strProvider & "Persist Security Info=False"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strProvider
End Sub
Sub CloseDataBase
objConn.Close
Set objConn = Nothing
End Sub

%>


For så skriver den fejlen:
Fejltype:
Server.MapPath(), ASP 0172 (0x80004005)
Parameteren for stien for metoden MapPath skal være en virtuel sti. Der blev brugt en fysisk sti.
/admin/DBconn.asp, line 8
Avatar billede erikjacobsen Ekspert
01. april 2007 - 21:18 #5
Jamen det var da noget vrøvl. Man skal ikke skrive
        Server.MapPath("C:/Inetpub/wwwroot/db/xxx.mdb")
men bare
        "C:/Inetpub/wwwroot/db/xxx.mdb"
Så i dit tilfælde 2 skal du vel to ting (selv om jeg igen ikke ved om det er den eneste rigtige løsning):

1) Kalde funktionen: OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")
2) I funktionen ændre til: strProvider = strProvider & "Data Source=" & strDBPath & ";"
Avatar billede jr40 Nybegynder
01. april 2007 - 21:25 #6
Så har jeg ændret det til:
<%

Dim objConn
Sub OpenDataBase("C:/Inetpub/wwwroot/db/db.mdb")
Dim strProvider
strProvider = ""
strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
strProvider = strProvider & "Data Source=" & strDBPath & ";"
strProvider = strProvider & "Persist Security Info=False"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strProvider
End Sub
Sub CloseDataBase
objConn.Close
Set objConn = Nothing
End Sub

%>

Men den skriver dette her:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2)
Id var ventet
/admin/DBconn.asp, line 4, column 17
Sub OpenDataBase("C:/Inetpub/wwwroot/db/db.mdb")
----------------^


Må ærlig indrømme af jeg ikke lige er helt skarp i lige dette her.
Avatar billede erikjacobsen Ekspert
01. april 2007 - 21:38 #7
Ikke just - du skal finde hvor du kalder funktionen OpenDataBase
Avatar billede madeindk Nybegynder
01. april 2007 - 21:46 #8
Ligger din side ikke i wwwroot?
Avatar billede jr40 Nybegynder
01. april 2007 - 21:46 #9
Jeg har en config fil hvor der står:
Call OpenDatabase("../../" & NewFolder & "xxx.mdb")

Men hvad vil du tro jeg skal ændre den linje til.?
Avatar billede erikjacobsen Ekspert
01. april 2007 - 22:12 #10
Som der bliver sagt: ændre kaldet til

Call OpenDataBase("C:/Inetpub/wwwroot/db/db.mdb")
Avatar billede madeindk Nybegynder
01. april 2007 - 22:16 #11
<%
Set Connect = Server.CreateObject("ADODB.Connection")

Sub OpenConn
  Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/db/db.mdb")
End Sub

Sub CloseConn
  Connect.Close
  Set Connect = Nothing
End Sub
%>

Det ligger du fx. i en functions.asp fil du så inkluderer og så kalder du bare funktionen ved at skrive:

<% Call OpenConn %> og ligeledes <% Call CloseConn %>
Avatar billede jr40 Nybegynder
01. april 2007 - 22:18 #12
Så er den ændret, men for stadig denne her:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2)
Id var ventet
/admin/DBconn.asp, line 4, column 4
Sub Call OpenDataBase("C:/Inetpub/wwwroot/db/db.mdb")
---^
Avatar billede erikjacobsen Ekspert
01. april 2007 - 22:27 #13
Du skal lade

  Sub OpenDataBase(strDBPath)

blive stående, og kun lave kaldet om, som før anført.
Avatar billede jr40 Nybegynder
01. april 2007 - 22:45 #14
Jeg er altså ikke helt med nu hvad du mener, da jeg mener jeg har ændret det som du har sagt.

Altså min include dbconn.asp ser sådan her ud:
<%

Dim objConn
Sub Call OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")
Dim strProvider
strProvider = ""
strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
strProvider = strProvider & "Data Source=" & Server.MapPath(strDBPath) & ";"
strProvider = strProvider & "Persist Security Info=False"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strProvider
End Sub
Sub CloseDataBase
objConn.Close
Set objConn = Nothing
End Sub

%>


Min anden include config fil ser sådan her ud:
Call OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")

Og fejlen jer for:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2)
Id var ventet
/admin/DBconn.asp, line 4, column 4
Sub Call OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")
---^




madeindk>>> Jo min side ligger i wwwroot
Avatar billede jr40 Nybegynder
02. april 2007 - 18:56 #15
?
Avatar billede erikjacobsen Ekspert
02. april 2007 - 19:18 #16
Prøv at læse det hele en gang til, fra starten ;)
Avatar billede jr40 Nybegynder
02. april 2007 - 20:04 #17
Det har jeg gjordt op til flere gange, og derfor vil jeg høre om i kan hjælpe mig med at den stadig skriver fejl, da det ikke jo ikke virker endnu.
Avatar billede jr40 Nybegynder
02. april 2007 - 20:12 #18
Jeg skal bruge det imorgen tidlig, så ville være rart hvis der var en venlig sjæl som kan se hvad jeg skal ændre mit script til, så det virker.
Avatar billede erikjacobsen Ekspert
02. april 2007 - 20:41 #19
-------------------
01/04-2007 22:27:38
Du skal lade

  Sub OpenDataBase(strDBPath)

blive stående.
-------------------
Det betyder altså at den linie skal stå som oprindeligt - ikke ændre. Det er aldrig blevet foreslået, og da du selv gør det, gør jeg opmærksom på at du ikke skal gøre det.

-------------------
01/04-2007 21:18:53
1) Kalde funktionen: OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")
-------------------
Du viser senere hvordan den kaldes. Man behøver ikke call, men man må, altså, som du siden viser:
Call OpenDataBase("C:/Inetpub/wwwroot/db/xxx.mdb")

-------------------
01/04-2007 21:18:53
2) I funktionen ændre til: strProvider = strProvider & "Data Source=" & strDBPath & ";"
-------------------
Alligevel lader du
strProvider = strProvider & "Data Source=" & Server.MapPath(strDBPath) & ";"
blive stående.


Hvad skal du da bruge det til? Hvis du skal lære ASP, så start da med noget simplere. Og så er det rimeligt meget gammeldags at bruge ASP - i hvert fald ikke til noget nyt i disse tider med så mange andre, og bedre, muligheder.
Avatar billede jr40 Nybegynder
02. april 2007 - 20:54 #20
Så er jeg med Erik, men så skriver den nu:
Fejltype:
Microsoft JET Database Engine (0x80004005)
Handlingen skal bruge en opdaterbar forespørgsel.
/admin/sell.asp, line 14
Avatar billede jr40 Nybegynder
02. april 2007 - 20:55 #21
Hov nej, jeg mener at den skriver denne her fejl:
Fejltype:
Server.MapPath(), ASP 0172 (0x80004005)
Parameteren for stien for metoden MapPath skal være en virtuel sti. Der blev brugt en fysisk sti.
/Default.asp, line 70

Linje 70:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("C:/Inetpub/wwwroot/db/db.mdb")
%>
Avatar billede jr40 Nybegynder
02. april 2007 - 21:12 #22
Jeg har tricket den ved at skrive:
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/db.mdb")
istedetfor en c:\blabla sti
Avatar billede jr40 Nybegynder
02. april 2007 - 21:18 #23
Jeg kan se min side og alt mit data bliver hentet som det skal fra min database...
Har det aller sidste problem, som jeg ikke lige helt ved hvad er:

Den bliver ved med at komme med denne her fejl, når jeg vil gemme i min database:
Fejltype:
Microsoft JET Database Engine (0x80004005)
Handlingen skal bruge en opdaterbar forespørgsel.
/admin/status.asp, line 14

Altså: (Handlingen skal bruge en opdaterbar forespørgsel.)
Avatar billede erikjacobsen Ekspert
02. april 2007 - 21:21 #24
http://activedeveloper.dk/forum/forum.asp?mid=70845&page=13

Men hvad er det du skal bruge det til ?
Avatar billede jr40 Nybegynder
02. april 2007 - 21:28 #25
Så har jeg selv fundet ud af det med opdaterbar forspørgsel.
se evt. indlæg fra eagleeye: http://www.eksperten.dk/spm/530953

Det var skriverettigheder til dben som var problemet..

Så nu burde det hele være der...  Og tak for hjælpen begge to, samt du kan evt. ligge et svar erik, hvis du vil have de points.
Avatar billede erikjacobsen Ekspert
02. april 2007 - 21:53 #26
Jeg samler slet ikke på point, tak.
Avatar billede jr40 Nybegynder
05. april 2007 - 23:31 #27
Ok så snupper jeg dem da selv så.
Avatar billede jr40 Nybegynder
02. juli 2007 - 00:12 #28
sådan.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester