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
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Som den siger, så opretter du ikke et objekt conn /askhoej
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;"
den kommer stadig med samme fejl...
Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\db\dbase.mdb;"
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;"
Det kunne lyde som manglende rettigheder for din anonymous access bruger.
nej, der er en bruger med pass, har bare ikke postet den her på Eksperten
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.
<< teamdev, bruger du også access 2000?
02. juli 2002 - 16:34
#10
jeps
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")
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>
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 ?
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.
02. juli 2002 - 16:44
#15
;o)... siger det samme to gange... "indbygget funktion, indbygget i access"
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 ?!?
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.
02. juli 2002 - 16:53
#18
//tmceu Det lyder faktisk meget plausibelt :-)
02. juli 2002 - 16:56
#19
... jamn jeg har andre admin sider hvor jeg skriver/læser fra databasen.
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?
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
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)
02. juli 2002 - 17:46
#23
hello... anyone?
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 & "')"
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?
02. juli 2002 - 18:01
#26
Så Session? så det Session.Timeout = 1 'angives i minutter
02. juli 2002 - 18:02
#27
//eagleeye , hvor sætter jeg det ind henne?
02. juli 2002 - 18:12
#28
hellow...
02. juli 2002 - 18:14
#29
i Sub Session_OnStart: Sub Session_OnStart Session.Timeout = 1
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 ??
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.
02. juli 2002 - 18:56
#32
hmm... der bliver nemlig ikke slettet noget.
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>
02. juli 2002 - 19:00
#34
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
02. juli 2002 - 19:07
#36
jeg definerer jo strIP her: strIP = Request.ServerVariables("REMOTE_ADDR")
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....
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
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.
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?
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.
02. juli 2002 - 19:39
#43
hmm... hvad består "Session_OnEnd" af
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.
02. juli 2002 - 19:59
#45
det virker ikke :( ... tror ikke der sker en skid ved session_OnEnd
06. juli 2002 - 18:11
#46
//lukker, selv om jeg ikke har fået det til at virke :(
Kurser inden for grundlæggende programmering