23 messaggi dal 05 gennaio 2002
Qualcuno sa darmi una spiegazione riguardo questo errore? A casa con IIS mi funziona tutto perfettamente, ma appena ho messo il tutto sul server non funziona più niente! Se volete vedere con i vostri occhi:
http://web.tacnet.it/prove/frem/index.asp

Aiutatemi vi prego

Microsoft VBScript runtime error '800a01a8'

Object required: 'session(...)'

/prove/frem/carrello.asp, line 9



l'esempio usa il global.asa, che deve andare nella root dell'application.

<hr color="#31659C" noshade size=1>
Daniele Bochicchio
<b>Content manager di http://www.aspitalia.com</b>

ASP 3 per esempi il mio libro

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
23 messaggi dal 05 gennaio 2002
io ho inserito il file global.asa, il problema è che probabilmente non funziona. Nell'esempio, se non ho capito male, viene creato il carrello.ado, ma vedendo i file dall'ftp, ho visto che sul server che mi ospita non viene creato proprio niente, allora il carrello glielo inserisco io.... può essere questa la causa? Io stò cercando di imparare a programmare in asp, sono tutt'altro che un'esperta, ti mando il file global.asa ecco il listato:
(ho cercato di unire quelli che originariamente erano due diversi file, forse ho fatto un ..... )

Sub Application_OnStart

'Creo una istanza del RS da salvare
Set rs=Server.CreateObject("adodb.recordset")

'Path e NOME del carrello persistente
Carrello=Server.Mappath("carrello.ado")

ConnStr="Provider=Microsoft.Jet.Oledb.3.51;data source=" & server.mappath("fpdb/users.mdb")
rs.activeconnection=ConnStr

'Impostazione del cursore lato Client per rendere il recordset persistente
rs.cursorlocation=3

'Apertura del RS - CursorType=adOpenStatic; LockType=adLockBatchOptimistic
rs.open "select * from DETTAGLIO_ORDINI where ID_ORDINE=0",,3,4

'Rendo il RS persistente sul disco
rs.save Carrello

rs.close
set rs=nothing

End Sub
Sub Session_OnStart

'Il recordset di appoggio per trasferire i dati dal file
set rs=server.createobject("adodb.recordset")

'Path assoluto del Recordset persistente
carrello=Server.Mappath("carrello.ado")

'Apertura del recordset
rs.open Carrello

'Assegno il carrello vuoto all'oggetto Session
set session("carrello")=rs

'Assegno la stringa di connessione ad una variabile session
session("StrConn") = "Provider=Microsoft.Jet.Oledb.3.51;data source=" & server.mappath("fpdb/users.mdb")

End Sub&lt;SCRIPT LANGUAGE=VBScript RUNAT=Server&gt;



Sub Application_OnStart
'==FrontPage Generated - startspan==
Dim FrontPage_UrlVars(2)
'--Project Data Connection
Application("Database1_ConnectionString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=URL=fpdb/users.mdb"
FrontPage_UrlVars(0) = "Database1_ConnectionString"
Application("Database1_ConnectionTimeout") = 15
Application("Database1_CommandTimeout") = 30
Application("Database1_CursorLocation") = 3
Application("Database1_RuntimeUserName") = ""
Application("Database1_RuntimePassword") = ""
'--Project Data Connection
Application("Database2_ConnectionString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=URL=rubrica.mdb"
FrontPage_UrlVars(1) = "Database2_ConnectionString"
Application("Database2_ConnectionTimeout") = 15
Application("Database2_CommandTimeout") = 30
Application("Database2_CursorLocation") = 3
Application("Database2_RuntimeUserName") = ""
Application("Database2_RuntimePassword") = ""
'--
Application("FrontPage_UrlVars") = FrontPage_UrlVars
'==FrontPage Generated - endspan==
End Sub
Sub Session_OnStart
FrontPage_StartSession '==FrontPage Generated==
End Sub
Sub FrontPage_StartSession
On Error Resume Next
if Len(Application("FrontPage_VRoot")) &gt; 0 then Exit Sub
' discover the VRoot for the current page;
' walk back up VPath until we find global.asa
Vroot = Request.ServerVariables("PATH_INFO")
strG1 = "global.asa"
strG2 = "Global.asa"
iCount = 0
do while Len(Vroot) &gt; 1
idx = InStrRev(Vroot, "/")
if idx &gt; 0 then
Vroot = Left(Vroot,idx)
else
' error; assume root web
Vroot = "/"
end if
if FrontPage_FileExists(Server.MapPath(Vroot & strG1)) then exit do
if FrontPage_FileExists(Server.MapPath(Vroot & strG2)) then exit do
if Right(Vroot,1) = "/" then Vroot = Left(Vroot,Len(Vroot)-1)
iCount = iCount + 1
if iCount &gt; 100 then
' error; assume root web
Vroot = "/"
exit do
end if
loop
' map all URL= attributes in _ConnectionString variables
Application.Lock
if Len(Application("FrontPage_VRoot")) = 0 then
Application("FrontPage_VRoot") = Vroot
UrlVarArray = Application("FrontPage_UrlVars")
for i = 0 to UBound(UrlVarArray)
if Len(UrlVarArray(i)) &gt; 0 then FrontPage_MapUrl(UrlVarArray(i))
next
end if
Application.Unlock
End Sub
Sub FrontPage_MapUrl(AppVarName)
' convert URL attribute in conn string to absolute file location
strVal = Application(AppVarName)
strKey = "URL="
idxStart = InStr(strVal, strKey)
If idxStart = 0 Then Exit Sub
strBefore = Left(strVal, idxStart - 1)
idxStart = idxStart + Len(strKey)
idxEnd = InStr(idxStart, strVal, ";")
If idxEnd = 0 Then
strAfter = ""
strURL = Mid(strVal, idxStart)
Else
strAfter = ";" & Mid(strVal, idxEnd + 1)
strURL = Mid(strVal, idxStart, idxEnd - idxStart)
End If
strOut = strBefore & Server.MapPath(Application("FrontPage_VRoot") & strURL) & strAfter
Application(AppVarName) = strOut
End Sub
Function FrontPage_FileExists(fspath)
On Error Resume Next
FrontPage_FileExists = False
set fs = CreateObject("Scripting.FileSystemObject")
Err.Clear
set istream = fs.OpenTextFile(fspath)
if Err.Number = 0 then
FrontPage_FileExists = True
istream.Close
end if
set istream = Nothing
set fs = Nothing
End Function
&lt;/SCRIPT&gt;
Grazie e ciao

il global.asa va nella root, non in un posto qualsiasi a tuo piacere.
no root = no esecuzione

<hr color="#31659C" noshade size=1>
Daniele Bochicchio
<b>Content manager di http://www.aspitalia.com</b>

ASP 3 per esempi il mio libro

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
6 messaggi dal 27 febbraio 2002
Ho anche io lo stesso problema, questo carrello era su aspitalia.

Ho risolto in parte il problema modificando così questa riga:
ConnStr=("Provider=Microsoft.Jet.Oledb.4.0;data source=" & server.mappath("playworld.mdb"))
però adesso mi dà questo errore:

Provider error '80030103'

Can't save.

//global.asa, line 21


ANCHE IO SONO AGLI INIZI

questo errore indica che non hai i permessi di scrittura, per cui non riesce a creare il file carrello.ado, utilizzato da ADO per la persistenza del carrello stesso su file.

<hr color="#31659C" noshade size=1>
Daniele Bochicchio
<b>Content manager di http://www.aspitalia.com</b>

ASP 3 per esempi il mio libro

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
23 messaggi dal 05 gennaio 2002
Anch' io all'inizio ho cambiato la riga che hai cambiato tu, ma il problema è che il sito è ospitato presso un provider che non poteva riavviare IIS e allora il file global.asa non mi creava il carrello.ado. Infatti questo avrebbe dovuto venire inizializzato con l'evento application on start. Ho fatto creare il carrello con session on start e tutto si è risolto! Ho poi cancellato le righe di creazione del carrello (evento che si doveva realizzare soltanto una volta, almeno spero) e tutto funziona perfettamente... tranne qualche piccolo particolare che spero di risolvere presto. Infatti adesso se un utente seleziona degli articoli ma non porta a termine l'ordine, il carrello resta pieno e visibile anche ad un secondo utente... sono proprio negata!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.