Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 15:11 Der er 43 kommentarer og
3 løsninger

global.asa

Hvad er der galt med denne global.asa?

<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart

Application("Conn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"
   

strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = Request.ServerVariables("HTTP_USER_AGENT")

sql = "INSERT INTO brugerinfo (ip, browser) VALUES("' & strIP & '", "' & strBROW & '")"

conn.execute(sql)
Conn.Close
Set Conn = Nothing
   
End Sub


SUB Session_OnEnd

Application("Conn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

conn.execute(sql)
Conn.Close
Set Conn = Nothing
END SUB

</SCRIPT>


Jeg får fejlen:

Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'conn'
/bjarke/global.asa, line 12


Jeg bruger Access 2000


/Bjarke - (KLEIFDESIGN)
http://www.mypage.dk
Avatar billede askhoej Praktikant
02. juli 2002 - 15:13 #1
Som den siger, så opretter du ikke et objekt conn

/askhoej
Avatar billede askhoej Praktikant
02. juli 2002 - 15:15 #2
Application("Conn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"

Skal erstattes med

Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 15:20 #3
den kommer stadig med samme fejl...
Avatar billede askhoej Praktikant
02. juli 2002 - 15:30 #4
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 15:38 #5
nu får jeg fejlen:

Error Type:
Microsoft JET Database Engine (0x80004005)
Could not find installable ISAM.
/bjarke/global.asa, line 6


...linie 6:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Web\bjarke\db\dbase.mdb;"
Avatar billede tmceu Praktikant
02. juli 2002 - 16:22 #6
Det kunne lyde som manglende rettigheder for din anonymous access bruger.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:27 #7
nej, der er en bruger med pass, har bare ikke postet den her på Eksperten
Avatar billede teamdev Novice
02. juli 2002 - 16:31 #8
Prøv denne her global.asa

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart
Application.Lock

Application.Contents("dbconn")="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Web\bjarke\db\dbase.mdb;"


Application.Unlock
End Sub

Sub Session_OnStart



strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = Request.ServerVariables("HTTP_USER_AGENT")

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "INSERT INTO brugerinfo (ip, browser) VALUES("' & strIP & '", "' & strBROW & '")"

conn.execute(sql)
Conn.Close
Set Conn = Nothing


End Sub


Sub Session_OnEnd

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

conn.execute(sql)
Conn.Close
Set Conn = Nothing

End sub


</SCRIPT>


Det er en lettere modificeret udgave af den jeg bruger.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:33 #9
<< teamdev, bruger du også access 2000?
Avatar billede teamdev Novice
02. juli 2002 - 16:34 #10
jeps
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:35 #11
får fejlen igen:

Error Type:
Microsoft JET Database Engine (0x80004005)
Could not find installable ISAM.
/bjarke/global.asa, line 20


linie 20: conn.open application("dbconn")
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:36 #12
hmm underligt, er dette ikke rigtigt:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart
Application.Lock

Application.Contents("dbconn")="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Web\bjarke\db\dbase.mdb; UID=administrator; PWD=password"


Application.Unlock
End Sub

Sub Session_OnStart



strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = Request.ServerVariables("HTTP_USER_AGENT")

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "INSERT INTO brugerinfo (ip, browser) VALUES("' & strIP & '", "' & strBROW & '")"

conn.execute(sql)
Conn.Close
Set Conn = Nothing


End Sub


Sub Session_OnEnd

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

conn.execute(sql)
Conn.Close
Set Conn = Nothing

End sub


</SCRIPT>
Avatar billede tmceu Praktikant
02. juli 2002 - 16:40 #13
Du skriver der er bruger med password. Betyder det at du kører med Windows authentication på IIS eller kører du med Anonymous Access ?
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:44 #14
ok jeg bruger ikke en bruger med password, men jeg bruger den indbygget password funktion der er indbygget i access.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:44 #15
;o)... siger det samme to gange... "indbygget funktion, indbygget i access"
Avatar billede teamdev Novice
02. juli 2002 - 16:48 #16
Mærkeligt. Nu har jeg lavet min global.asa fuldstændig som ovenfor og oprettet databasen. Og jeg får ingen fejl. Til gengæld bli'r der heller ikke hældt data i basen ?!?
Avatar billede tmceu Praktikant
02. juli 2002 - 16:49 #17
Det jeg mente med manglende rettigheder var (og er :-), at hvis du kører med anonymous access kunne fejlen "Could not find installable ISAM" indikere at brugeren IUSR_MASKINNAVN ikke har rettigheder til .mdb filen.
Avatar billede teamdev Novice
02. juli 2002 - 16:53 #18
//tmceu
Det lyder faktisk meget plausibelt :-)
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 16:56 #19
... jamn jeg har andre admin sider hvor jeg skriver/læser fra databasen.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 17:10 #20
men hvis jeg skal gøre så alle computere skal kunne skrive til databasen, hvordan gør jeg så det?
Avatar billede teamdev Novice
02. juli 2002 - 17:22 #21
Det er jeg ikke helt sikker på men du kan jo prøve at tilføje dette:

Mode=Share Deny None;

til connectionstringen sådan her:

Application.Contents("dbconn")="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Web\bjarke\db\dbase.mdb;Mode=Share Deny None;"

Ellers kan du jo også prøve at fjerne password fra databasen.
Under security/sikkerhed -

der kan man administrere grupper og brugere
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 17:34 #22
ok, nu får jeg en ny fejl:

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/bjarke/global.asa, line 24

...linie 24:

conn.execute(sql)
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 17:46 #23
hello... anyone?
Avatar billede eagleeye Praktikant
02. juli 2002 - 17:50 #24
Prøv med denne SQL der var byttet rundt på " og '

sql = "INSERT INTO brugerinfo (ip, browser) VALUES('" & strIP & "', '" & strBROW & "')"
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 17:57 #25
JAAAH... problemet er løst efter en måned... er der så en der kan fortælle mig hvordan man sætter en timeout på... fx 1min?
Avatar billede eagleeye Praktikant
02. juli 2002 - 18:01 #26
Så Session? så det

Session.Timeout = 1 'angives i minutter
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 18:02 #27
//eagleeye , hvor sætter jeg det ind henne?
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 18:12 #28
hellow...
Avatar billede eagleeye Praktikant
02. juli 2002 - 18:14 #29
i Sub Session_OnStart:

Sub Session_OnStart
Session.Timeout = 1
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 18:19 #30
hmm... et sidste spm:

hvis nu i kigger på min kode, så når brugeren lukker browser vinduet, så bliver info om brugeren jo ikke slettet, eller gør den?

Fordi jeg skriver:

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

... og hvis nu brugeren ikke er logget på mere, så kan den vel ikke finde strIP ??
Avatar billede eagleeye Praktikant
02. juli 2002 - 18:46 #31
Ja men Session_OnEnd skulle så gerne blive kaldt inden.

The Session_OnEnd event occurs when a session is abandoned or times out.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 18:56 #32
hmm... der bliver nemlig ikke slettet noget.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 18:58 #33
min global.asa ser sådan ud nu:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart
Application.Lock

Application.Contents("dbconn")="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Web\bjarke\db\dbase.mdb;Mode=Share Deny None;"


Application.Unlock
End Sub

Sub Session_OnStart
Session.Timeout = 1

strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = Request.ServerVariables("HTTP_USER_AGENT")

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "INSERT INTO brugerinfo (ip, browser) VALUES('" & strIP & "', '" & strBROW & "')"

conn.execute(sql)
Conn.Close
Set Conn = Nothing


End Sub


Sub Session_OnEnd

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

conn.execute(sql)
Conn.Close
Set Conn = Nothing

End sub


</SCRIPT>
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:00 #34
Avatar billede eagleeye Praktikant
02. juli 2002 - 19:03 #35
Hvor defienre du strIP ??

Når du kommer ind i Session_OnEnd bruger du bare strIP !! og jeg kan ikke de den er defineret. Su skal nok gemme IP'en session Session("ip") også bruge den når du sletter.
Prøv at kigge her: http://www.bann.co.uk/asp/global/connections.asp
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:07 #36
jeg definerer jo strIP her:

strIP = Request.ServerVariables("REMOTE_ADDR")
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:07 #37
jep, jeg har godt læst http://www.bann.co.uk/asp/global/connections.asp , men har prøvet at lave det uden held :(
Avatar billede eagleeye Praktikant
02. juli 2002 - 19:11 #38
Ja i en anden function, men når du går ud af Session_OnStart findes strIP ikke mere. Du definere den med :

Dim strIP

uden for function, men da den vil blive ændret for hver gang en ny bruger komme ind på din side er du nød til at gemme IP adressen et unik sted for en bruger og det er i Session objectet....
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:11 #39
har nu sat denne sætning ind:

strIP = Request.ServerVariables("REMOTE_ADDR")
sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

... men den sletter det stadigvæk ikke
Avatar billede eagleeye Praktikant
02. juli 2002 - 19:14 #40
Men der kan også generelt være et problem med Session_OnEnd og access database: http://www.eksperten.dk/spm/226952


Du kan prøve at indsætte og ikke slette:

strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = "Session_OnEnd"
sql = "INSERT INTO brugerinfo (ip, browser) VALUES('" & strIP & "', '" & strBROW & "')"

Så kan du let se om der kommer noget nyt i databasen ved Session_OnEnd, det er naturligvis bare for test.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:19 #41
ARGH... er det ikke fordi at jeg slutter min connection før session_onEnd?
eller bliver Application.Contents("dbconn") - ikke lukket?
Avatar billede eagleeye Praktikant
02. juli 2002 - 19:23 #42
Application.Contents("dbconn")="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Web\bjarke\db\dbase.mdb;Mode=Share Deny None;"

Bliver ført slettet når du lukker/stopper/slukker din web-server.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:39 #43
hmm... hvad består "Session_OnEnd" af
Avatar billede eagleeye Praktikant
02. juli 2002 - 19:50 #44
Prøv at lave Session_OnEnd sådan her:


Sub Session_OnEnd

set conn = Server.CreateObject("ADODB.connection")
conn.open application("dbconn")

strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = "Session_OnEnd"
sql = "INSERT INTO brugerinfo (ip, browser) VALUES('" & strIP & "', '" & strBROW & "')"
conn.execute(sql)
Conn.Close
Set Conn = Nothing

End sub


hvis den gemmer ip (xxx.xxx.xxx.xxx) og browser ("Session_OnEnd") i brugerinfo, så ved du at Session_OnEnd bliver kaldt rigtigt.
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 19:59 #45
det virker ikke :( ... tror ikke der sker en skid ved session_OnEnd
Avatar billede musicchart.dk Nybegynder
06. juli 2002 - 18:11 #46
//lukker, selv om jeg ikke har fået det til at virke :(
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