/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Er der ¨forskel på tilgang til Access2000 ~
Fra : Jens R. Rasmussen


Dato : 27-09-09 23:30

Hej/

På min gl. pc (med xp)kører jeg Access2000, som jeg bruger som
database.

For at kunne tilgå den fra mine asp-programmer skelner jeg mellem
om det er den lokale database eller den der ligger på min
webhotel; idet jeg bruger følgende koder til at definerer DSN,
som virkede efter hensigten:

<%
'Databasekaldet er forskelligt, hvis databasen ligger lokalt på
min maskine eller hos wannafind
Dim fso, lserveraddresse, rserveraddresse
' Start FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
' Find den fysiske adresse på server og klientmaskine
lserveradresse = Request.ServerVariables("LOCAL_ADDR")
rserveradresse = Request.ServerVariables("REMOTE_ADDR")

If lserveradresse=rserveradresse Then
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("../database/vvvdb.mdb")
Else
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
"d:/web/vinvenner.dk/database/vvvdb.mdb"
End If
%>

På min nye pc (stadig med xp) mener jeg at filer og database
ligger nøjagtig på samme måde under C:\inetpub\wwwroot\filerne
hhv. C:\inetpub\database\database-filerne.

Forskellen er imidlertid, at på den nye pc er office 2007
installeret og dermed Access2007. Men jeg kører fortsat mine
databaser som 2000 (ligesom man kan køre et word2003 dokument
under word2007).

Men nu får jeg fejl, når jeg laver en lokal Conn.Open DSN i mine
programmer, så der er åbenbart fejl i ovestående. Det får mig til
at tænke på, om

DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("../database/vvvdb.mdb")

skal hedde noget andet, når access nu er 2007?

Eller er der mon en opsætningsparameter jeg har glemt på pc'en,
som jeg satte i tidernes morgen på den gamle pc?

Den konkrete fejlmeddelelse er:
"Registreringsnøglen Temporary (volatile) Jet DSN for process
0x1334 Thread 0x968 DBC 0x1a524c4 Jet kan ikke åbnes."

Endelig skal jeg sige, at alle andre siderne kører perfekt
lokalt, sålænge jeg ikke skal lave et lokalt databasekald.

Og når jeg laver databaseopslag fra min webhotel er der heller
ingen problemer - det er kun lokale databaseopslag der giver
DSN-fejl.

/Jens


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Johansen (28-09-2009)
Kommentar
Fra : Stig Johansen


Dato : 28-09-09 09:49

"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> wrote in message
news:4abfe75b$0$282$14726298@news.sunsite.dk...
> På min gl. pc (med xp)kører jeg Access2000, som jeg bruger som
> database.
>
> For at kunne tilgå den fra mine asp-programmer skelner jeg mellem
> om det er den lokale database eller den der ligger på min
> webhotel; idet jeg bruger følgende koder til at definerer DSN,
> som virkede efter hensigten:

Hvorfor gøre det så besværligt?

> 'Databasekaldet er forskelligt, hvis databasen ligger lokalt på
> min maskine eller hos wannafind

Hvis du bruger samme directory struktur, så kan du lave en include fil a lá:
<%
Dim oConn
Dim oConnString
Set oConn = Server.CreateObject("ADODB.Connection")
oConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("/") + "/../database/notesdb.mdb;Persist Security Info=False"
oConn.Open oConnString
%>

Forudsat at databasen ligger uden for webscope i ../database.

Jeg lavede engang denne beskrivelse:
http://w-o-p-r.dk/tips/asp/access.sqlserver.html

> Eller er der mon en opsætningsparameter jeg har glemt på pc'en,
> som jeg satte i tidernes morgen på den gamle pc?

Prøv at lave en udl-fil, og en 'test connection'.

> Den konkrete fejlmeddelelse er:
> "Registreringsnøglen Temporary (volatile) Jet DSN for process
> 0x1334 Thread 0x968 DBC 0x1a524c4 Jet kan ikke åbnes."

"Registreringsnøglen" aka "registry" tyder på noget rettighedsproblem.

--
Med venlig hilsen/Best regards
Stig Johansen




Jens R. Rasmussen (28-09-2009)
Kommentar
Fra : Jens R. Rasmussen


Dato : 28-09-09 19:57

Hej Stig/

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> > For at kunne tilgå den fra mine asp-programmer skelner jeg mellem
> > om det er den lokale database eller den der ligger på min
> > webhotel; idet jeg bruger følgende koder til at definerer DSN,
> > som virkede efter hensigten:
>
> Hvorfor gøre det så besværligt?

Jeg var ikke klar over, at man kunne lave et og samme kald, som tilpassede sig
om man kaldte lokalt eller remote. For det er det du siger man kan med
nedenstående,ikk?

> > 'Databasekaldet er forskelligt, hvis databasen ligger lokalt på
> > min maskine eller hos wannafind
>
> Hvis du bruger samme directory struktur, så kan du lave en include fil a lá:
> <%
&gt; Dim oConn
&gt; Dim oConnString
&gt; Set oConn = Server.CreateObject("ADODB.Connection")
&gt; oConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
&gt; Server.MapPath("/") + "/../database/notesdb.mdb;Persist Security
Info=False"
&gt; oConn.Open oConnString
&gt; %>
>
> Forudsat at databasen ligger uden for webscope i ../database.
>
> Jeg lavede engang denne beskrivelse:
> http://w-o-p-r.dk/tips/asp/access.sqlserver.html
>
> > Eller er der mon en opsætningsparameter jeg har glemt på pc'en,
> > som jeg satte i tidernes morgen på den gamle pc?
>
> Prøv at lave en udl-fil, og en 'test connection'.

Tak - det har jeg gjort, og testopkaldet gik fint igennem. Jeg bemærkede at
brugerid står som admin - selvom jeg logger på med et andet id, lad os kalde
det JENS. Sålænge brugerid står som admin går testkaldet fint igennem - men
ikke hvis jeg ændrer til JENS. Men det betyder måske ikke noget.

Herefter ændrede jeg i min includefil så den nu hedder:

FØR: DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("../database/vvvdb.mdb")
NU: DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/")&"/../database\vvvdb.mdb;Persist Security Info=False"

Og så prøver jeg igen fra mit program. Nu får jeg så en ny fejlmeddelelse,
nemlig:
"Microsoft JET Database Engine (0x80004005)
Microsoft Jet-databasemotoren kan ikke åbne filen
"c:\inetpub\database\vvvdb.mdb". Den er allerede åbnet med udelt adgang af en
anden bruger, eller du skal have tilladelse til at vise dataene."

> > Den konkrete fejlmeddelelse er:
> > "Registreringsnøglen Temporary (volatile) Jet DSN for process
> > 0x1334 Thread 0x968 DBC 0x1a524c4 Jet kan ikke åbnes."
>
> "Registreringsnøglen" aka "registry" tyder på noget rettighedsproblem.

Det tror jeg du har helt ret i. Men hvor skal jeg mon ændre i rettigheder. I
udl-testen har jeg afkryde såvel 'Read/write' som 'Share Deny none'. Og iselve
db-filen vvvdb.mdb er der så vidt jeg kan se ingen steder jeg kan angive
læse/skriverettigheder.

Så 'ja' jeg tror du har helt ret - nu er det "bare" et rettighedsproblem. Kan
du lede mig nok et stykke på vej?

mvh
/jens

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (28-09-2009)
Kommentar
Fra : Stig Johansen


Dato : 28-09-09 22:24

Jens R. Rasmussen wrote:

> Jeg var ikke klar over, at man kunne lave et og samme kald, som tilpassede
> sig om man kaldte lokalt eller remote. For det er det du siger man kan med
> nedenstående,ikk?

Ja, altså forudsat directory strukturen er den samme, og de samme providere
er installeret.

> Tak - det har jeg gjort, og testopkaldet gik fint igennem. Jeg bemærkede
> at brugerid står som admin - selvom jeg logger på med et andet id, lad os
> kalde det JENS. Sålænge brugerid står som admin går testkaldet fint
> igennem - men ikke hvis jeg ændrer til JENS. Men det betyder måske ikke
> noget.

Det er noget med brugeropsætning i Access (som jeg ikke kender så meget
til). Mit normale metier er ovre i nogle andre databaser.

> Og så prøver jeg igen fra mit program. Nu får jeg så en ny fejlmeddelelse,
> nemlig:
> "Microsoft JET Database Engine (0x80004005)
> Microsoft Jet-databasemotoren kan ikke åbne filen
> "c:\inetpub\database\vvvdb.mdb". Den er allerede åbnet med udelt adgang af
> en anden bruger, eller du skal have tilladelse til at vise dataene."

Det er en noget mere sigende fejlmelding.
Der står at du enten har åbnet databasen med et andet program, eller 'skal
have tilladelse til at vise dataene'.

Den bruger som din IIS kører under (typisk IUSR_xxx) skal have læse og
skriveadgang til c:\inetpub\database\

Prøv at tjekke rettighederne til det bibliotek.

>> > Den konkrete fejlmeddelelse er:
>> > "Registreringsnøglen Temporary (volatile) Jet DSN for process
>> > 0x1334 Thread 0x968 DBC 0x1a524c4 Jet kan ikke åbnes."
>>
>> "Registreringsnøglen" aka "registry" tyder på noget rettighedsproblem.
>
> Det tror jeg du har helt ret i. Men hvor skal jeg mon ændre i rettigheder.

Da du nu bruger Oledb i stedet for ODBC lokalt, tror jeg bare du skal glemme
denne fejl.

> I udl-testen har jeg afkryde såvel 'Read/write' som 'Share Deny none'. Og
> iselve db-filen vvvdb.mdb er der så vidt jeg kan se ingen steder jeg kan
> angive læse/skriverettigheder.

Det skal du gøre i 'stfinderen'.
Jeg bruger Win 2000, og der er det højreklik - properties - security.

> Så 'ja' jeg tror du har helt ret - nu er det "bare" et rettighedsproblem.
> Kan du lede mig nok et stykke på vej?

Jeg har ikke nyere Windows/Access, så hvis det ikke er det samme som på Win
2000, så kan jeg nok ikke hjælpe med det.

--
Med venlig hilsen
Stig Johansen

Jens R. Rasmussen (28-09-2009)
Kommentar
Fra : Jens R. Rasmussen


Dato : 28-09-09 22:59

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Jens R. Rasmussen wrote:
>
> > Jeg var ikke klar over, at man kunne lave et og samme kald, som tilpassede
> > sig om man kaldte lokalt eller remote. For det er det du siger man kan med
> > nedenstående,ikk?
>
> Ja, altså forudsat directory strukturen er den samme, og de samme providere
> er installeret.
>
> > Tak - det har jeg gjort, og testopkaldet gik fint igennem. Jeg bemærkede
> > at brugerid står som admin - selvom jeg logger på med et andet id, lad os
> > kalde det JENS. Sålænge brugerid står som admin går testkaldet fint
> > igennem - men ikke hvis jeg ændrer til JENS. Men det betyder måske ikke
> > noget.
>
> Det er noget med brugeropsætning i Access (som jeg ikke kender så meget
> til). Mit normale metier er ovre i nogle andre databaser.
>
> > Og så prøver jeg igen fra mit program. Nu får jeg så en ny fejlmeddelelse,
> > nemlig:
> > "Microsoft JET Database Engine (0x80004005)
> > Microsoft Jet-databasemotoren kan ikke åbne filen
> > "c:\inetpub\database\vvvdb.mdb". Den er allerede åbnet med udelt adgang af
> > en anden bruger, eller du skal have tilladelse til at vise dataene."
>
> Det er en noget mere sigende fejlmelding.
> Der står at du enten har åbnet databasen med et andet program, eller 'skal
> have tilladelse til at vise dataene'.
>
> Den bruger som din IIS kører under (typisk IUSR_xxx) skal have læse og
> skriveadgang til c:\inetpub\database\
>
> Prøv at tjekke rettighederne til det bibliotek.
>
> >> > Den konkrete fejlmeddelelse er:
> >> > "Registreringsnøglen Temporary (volatile) Jet DSN for process
> >> > 0x1334 Thread 0x968 DBC 0x1a524c4 Jet kan ikke åbnes."
> >>
> >> "Registreringsnøglen" aka "registry" tyder på noget rettighedsproblem.
> >
> > Det tror jeg du har helt ret i. Men hvor skal jeg mon ændre i rettigheder.
>
> Da du nu bruger Oledb i stedet for ODBC lokalt, tror jeg bare du skal glemme
> denne fejl.
>
> > I udl-testen har jeg afkryde såvel 'Read/write' som 'Share Deny none'. Og
> > iselve db-filen vvvdb.mdb er der så vidt jeg kan se ingen steder jeg kan
> > angive læse/skriverettigheder.
>
> Det skal du gøre i 'stfinderen'.
> Jeg bruger Win 2000, og der er det højreklik - properties - security.
>
> > Så 'ja' jeg tror du har helt ret - nu er det "bare" et rettighedsproblem.
> > Kan du lede mig nok et stykke på vej?
>
> Jeg har ikke nyere Windows/Access, så hvis det ikke er det samme som på Win
> 2000, så kan jeg nok ikke hjælpe med det.
>
> --
> Med venlig hilsen
> Stig Johansen

Tak stig. Nu virker det. jeg skriver lidt udførligt fordi der var et indlæg
forleden, hvor en anden også havde problemer med at tilgå sin database - måske
han har samme problem som jeg havde.

Det viste sig, at går man ind under "administration" i kontrolpanelet og peger
på "computeradministration" og derefter "Tjenester og programmer" og dernæst
"Inter Information Service", så "Websteder" og endelig højreklikker på
"Standardwebsted" så er der minsandten en "alle opgaver" som indholder "Guiden
tilladelser". Og så var det jo bare at køre den igennem.

Tak for din hjælp.

mvh
/Jens

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens R. Rasmussen (30-09-2009)
Kommentar
Fra : Jens R. Rasmussen


Dato : 30-09-09 23:07

Og her var jeg så glad - det virkede. Men efter en nødvendig systemgendannelse
prøvede jeg løsningen igen - uden resultat - så nu er jeg tilbage til square one.
Altså at jeg ikke lokalt kan tilgå min accessdatabase fra mine asp-sider. Men jeg
kan godt tilgå den samme base, når den ligger hos min web-udbyder. Så jeg har et
rettighedsproblem lokalt hos mig selv.

Kort resumé:
Min webstruktur er den samme på min pc og hos min udbyder, nemlig at min
accessdatabase ligger som C:\inetpub\database\vvvdb.mdb og mine asp-sider som
C:\inetpub\wwwrot\filerne.

Jeg definerer forbindelsen som:
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/") &
"/../database/vvvdb.mdb;Persist Security Info=False"

Jeg kan fint lave et testopkald, når jeg bruger Stigs vejledning på
http://w-o-p-r.dk/tips/asp/access.sqlserver.html

Men når jeg kører en CON.OPEN DSN får jeg fejlmeddelelsen:
'Microsoft JET Database Engine (0x80004005)
Microsoft Jet-databasemotoren kan ikke åbne filen "c:\inetpub\database\vvvdb.mdb".
Den er allerede åbnet med udelt adgang af en anden bruger, eller du skal have
tilladelse til at vise dataene.'

Men hvor sættes rettighederne, så jeg får den nødvendige tilladelse? Det jeg (uden
held) har gjort er

- med stifinder har jeg markeret mappen Inetpub og under egenskaber\webdeling har
jeg delt mappen Inetpub

- det samme har jeg gjort med mappen database

- under kontrolpanel\administration\computeradministration har jeg udpakket
"Tjenester og programmer" og markeret mappen Internet Information
Services\websteder. Her er så valgt egenskaber og mappesikkerhed. Under "Styring
af anonym adgang ..." ser jeg at
-- der er sat flueben i Anonym adgang
-- konto til anonym adgang er sat til IUSR_JRR025296
-- Der en knap ved siden af 'brugernavn', som viser at der ikke er valgt noget
objektnavn. Er det mon her mangler er opstået?

Stig skrev tidligere:
> > Den bruger som din IIS kører under (typisk IUSR_xxx) skal have læse og
> > skriveadgang til c:\inetpub\database\
> > Prøv at tjekke rettighederne til det bibliotek.

Under egenskaber for biblioteket ...\database\ser jeg på første side at feltet
"Skrivebeskyttet" er hverken afhakket eller tomt - men er farvet grønt, hvilket
vel plejer at betyde at der er noget der er skrivebeskyttet og noget der ikke er?
Jeg kan godt fjernet den grønne farve - og anvende/gemme - men næste gang jeg går
ind er den igen farvet. Mon det er her problemet er?

mvh
/Jens

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (01-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-10-09 07:02

Jens R. Rasmussen wrote:

> Under egenskaber for biblioteket ...\database\ser jeg på første side at
> feltet "Skrivebeskyttet" er hverken afhakket eller tomt - men er farvet
> grønt, hvilket vel plejer at betyde at der er noget der er skrivebeskyttet
> og noget der ikke er? Jeg kan godt fjernet den grønne farve - og
> anvende/gemme - men næste gang jeg går ind er den igen farvet. Mon det er
> her problemet er?

Det ser slet ikke ud sådan på min Windows 2000.
Under properties (egenskaber) har jeg et faneblad, der hedder security
(sikkerhed), og her kan man angive brugere og rettigheder til biblioteket.

Her skal du tjekke om brugeren IUSR_JRR025296 ( i dit tilfælde) har de
fornødne rettigheder.

Under adgang har jeg 6 forskellig punkter, hvoraf det første er full
control.

Jeg kan godt lave et screenshot, men jeg tror ikke det vil hjælpe, da det
tilsyneladende er anderledes i XP eller hvad du nu bruger.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste