Forum 

Forum AspNuke.it - Il tuo Portale OpenSource in ASP

Modulo carrello di INVY

Autore Messaggio
mennella

Avanzato
Avanzato
155 Discussioni



Profilo - mennella
07 novembre 2006 alle 20:33:28 Profilo - mennellaInvia un messaggio privato Rispondi quotando
Sto cercando di elaborare il mod carrello di INVY per renderlo più usabile. In particolare sto integrando un altro modulo asp, dbList, di cui pubblico il copyright
'----------------------------------------------------------------------------------------
'- ASP dbList - Version 8.1 - 30 July 2005
'- Copyright © 2005 - Livio Siri (http://www.livio.net) - All Rights Reserved.
'----------------------------------------------------------------------------------------

che permette di modificare il database via web e non in locale con Access come al momento è settato.

l'installazione del nuovo modulo, in locale, funziona perfettamente e mi consente di modificare tutti i database tranne proprio il prodotti.mdb, per il quale, quando tento di aprirlo, mi restituisce l'errore seguente:
Table: Error: Il modulo di gestione di database Microsoft Jet non è in grado di aprire il file 'C:inetpubwwwrootdbprodotti.mdb'. Il file è già aperto con accesso esclusivo da un altro utente o è necessario disporre dell'autorizzazione per visualizzare i dati. Error: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:inetpubwwwrootdbprodotti.mdb


per la verità questo db mi da problemi anche quando tento di aprirlo in access, con un messaggio in inglese che, comunque, dice cose estremamente simili.

qualche suggerimento? [lo]
---------------
Questi li ho fatti io! 8)
http://www.digirolamoeditore.com
http://www.sferaufficio.com
guyver

Esperto
Esperto
1270 Discussioni



Profilo - guyver
09 novembre 2006 alle 12:55:28 Profilo - guyverInvia un messaggio privato Rispondi quotando
Questo succede perchè il file prodotti.mdb è protetto da nome utente e password e per questo non puoi aprirlo in modo diretto.
---------------
http://www.aspnukers.it
http://www.bitmaniasnc.com
guyver(at)anime4you.it (non è più attiva dopo aver chiuso il sito www.anime4you.it)
develop(at)aspnuke.it (non più attiva per motivi tecnici)
assistenza(at)bitmaniasnc.com
development(at)aspnukers.it
mennella

Avanzato
Avanzato
155 Discussioni



Profilo - mennella
09 novembre 2006 alle 13:33:32 Profilo - mennellaInvia un messaggio privato Rispondi quotando
nei file che ho scaricato non si faceva cenno a password... mi sa che solo INVY potrà rispondermi... comunque lo aveva detto che era ancora da definire...
---------------
Questi li ho fatti io! 8)
http://www.digirolamoeditore.com
http://www.sferaufficio.com
djveleno

Amministratore

Esperto
Esperto
1025 Discussioni



Profilo - djveleno
09 novembre 2006 alle 14:33:13 Profilo - djvelenoInvia un messaggio privato Rispondi quotando
In realtà il malfunzionamento è dovuto alla query prodotti inserita all'interno del db.
Dj
---------------
A lavare la testa ai somari, ci si rimette l'acqua e il sapone!

http://aspnuke208.somee.com/Default.asp

INVY

Avanzato
Avanzato
149 Discussioni



Profilo - INVY
11 novembre 2006 alle 00:03:09 Profilo - INVYInvia un messaggio privato Rispondi quotando
Ciao :)

perdonate se rispondo solo ora, ma sebbene stia oramai 12 ore al giorno davanti a un PC il più delle volte collegato a Internet non riesco a passare molte volte su AspNuke...

Il database: è stato impostato per essere aggiornato in locale e quindi, proprio perchè la connessione è sulle query e non direttamente sulle tabelle penso che non si possa così come è ora gestire direttamente da browser se non con un progetto a lui dedicato.

Il carrello e relativo database deriva da un progetto "su misura" per un mio sito ecommerce e quindi pensato a delle mie precise esigenze. Una di queste era che mi sarebbe stato impossibile una gestione da browser in quanto il database prodotti è inserito in un programma gestionale molto ampio che comprende dalla fatturazione e relativi registri fiscali ecc. fino a integrarsi con software delle Poste Italiane per la stampa in proprio dei bollettini pacchi.
Quindi il tutto sarebbe stato non gestibile in altro modo che in locale, o almeno per i nostri utilizzi abbiamo scelto questa opzione che ci andava meglio.

Purtroppo il poco tempo che ho potuto dedicare a questo carello ha permesso solo l'integrazione al portale AspNuke di un qualcosa che in se erà già fatto. In fondo si è trattato di rendere pubblico il nostro carello con alcune semplificazioni. La creazione di alcune pagine di supporto per la configurazione su AspNuke non è stato un grande lavoro proprio perchè il carello è indipendente.
Certo sarebbe stato meglio progettare un carrello appositamente pensato per AspNuke, con integrato ad esempio il database clienti/utenti registrati, oltre a poterlo aggiornare da browser. Io ho fatto quello che ho potuto nel mio tempo libero... oltre non ce la faccio :(

Buona navigazione [lo]
---------------
INVY
http://www.cyberspazio.org
http://www.cyberspazio.eu
http://www.informaticalibri.it
http://www.fotolibri.it
http://www.invy.net
------------------
Un lungo cammino inizia sempre con il primo passo.
mennella

Avanzato
Avanzato
155 Discussioni



Profilo - mennella
11 novembre 2006 alle 12:09:34 Profilo - mennellaInvia un messaggio privato Rispondi quotando
ho sudato non poco, ma credo di essere riuscito a fare funzionare il tutto per come volevo. racconto quello che ho fatto se può essere utile ad altri utenti, oltre, ovviamente, a mettere a disposizione i file modificati.
Premetto che io non sono assolutamente un programmatore ed ho quindi proceduto più per logica intuitiva che per conoscenza delle cose. questo vuol dire che posso avere usato procedure farraginose o comunque inadatte. comunque sembra funzionare, almeno per le mie esigenze.

siccome mi sono arrivati alcuni messaggi privati che chiedevano spiegazioni, le posto tutte quì, a disposizione di tutti ed anche dello staff che, se vede errori e me li vuole segnalare farebbe cosa più che gradita! :D

1) Integrazione carrello/articoli
L'integrazione è assolutamente fittizia. I dati vengono, di fatto, caricati due volte, procedendo in questo modo. Prima si carica il carrello di INVY, poi la sezione Articoli. Questa parte l'ho modificata facendo in modo che caricasse la stessa immagine del prodotto inserite nel carrello. Ho eliminato il ciclo If...Then che controllava se c'era l'immagine (nel mio caso è impossibile che ciò avvenga) e ho messo questa stringa:
Response.Write "<br><img src=""carrello/immagini/prodotti/" & Server.URLEncode(sAuthor) & ".jpg"" align=""left"" border=""0"" alt=""" & Server.HTMLEncode(oRs("arTitle")) & """>" & vbCRLF


In questo modo mi basta mettere nel campo Autore il codice prodotto che ho inserito nel carrello di INVY per visualizzaqre la stessa immagine. con un sistema analogo ho creato il link "Aggiungi al carrello".

possibile miglioramento: un semplice script che, inserendo appunto il codice prodotto, caricasse automaticemente alcuni dati nella tabella articoli del database main.mdb (titolo, prezzo, descrizione) prelevandoli dal database del carrello. ci sto lavorando, ma ogni aiuto sarebbe più che gradito, calcolando che, credo, dovrebbe essere semplice per uno che conosce ASP e db.

2) modifica via web del database
Sono riuscito a fare funzionare anche questo. ho usato un editor di database (DbList, scaricato da http://www.livio.net, poi ho aperto con Access il prodotti.mdb ed ho cancellato dal db tutte le query, le maschere e le altre cose che c'erano, lasciando solo le tabelle. ho provato ed ha funzionato, ma non so se è una procedura corretta.

3) Mod Carrello

questo è quello che mi piace di più 8)

metto direttamente il codice, sull'inserimento come box c'è ampia letteratura...
<%
Sub modcarrello()
Dim totProd
Dim nProd
Dim vProd

%>
<!-- #include virtual="/carrello/config.asp" -->



<% response.buffer=true %>


<%
if not isObject(session("carrello")) then
set carrello=server.createobject("scripting.dictionary")
presenti=0
else
set carrello=session("carrello")
presenti=carrello.count
end if
presenti=carrello.count
if presenti=0 then
response.write "<table width=""136"" class=""carrello""><tr><td>"
response.write "<img src=""space.gif"" width=""10"" height=""139"" alt="""" align=""left"">"
response.write "<a href=""" & GLOBAL_SITE_URL & GLOBAL_SITE_PATH & "carrello/carrello.asp"">"
response.write "<img src=""" & GLOBAL_SITE_THEMES_PATH & sTheme & "/carrello_icona.gif"" width=""66"" height=""19"" vspace=""5"" hspace=""12"" alt=""Vai al carrello"" border=""0"">"
response.write "</a><br><br>Il carrello è vuoto.<br>"
response.write "<br><a href=""" & GLOBAL_SITE_URL & GLOBAL_SITE_PATH & "carrello/carrello.asp"">Vai al carrello</a></td></tr></table>"

else
codici=join(carrello.keys,",")
response.write "<table width=""136"" class=""carrello""><tr>"
response.write "<td align=""center""><a href=""" & GLOBAL_SITE_URL & GLOBAL_SITE_PATH & "carrello/carrello.asp"">"
response.write "<img src=""" & GLOBAL_SITE_THEMES_PATH & sTheme & "/carrello_icona.gif"" width=""66"" height=""19"" vspace=""5"" hspace=""12"" alt=""Vai al carrello"" border=""0""></a></td></tr><tr><td>"
response.write "<table width=""100%"" class=""myTable"" cellspacing=""10""><tr><td>"

Set OBJdbConnection = Server.CreateObject("ADODB.RecordSet")
StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& PercorsoDatabase

OBJdbConnection.open "select * from Prodotti where IDprodotto in(" & codici & ")",StrConn
Set campi=OBJdbConnection.fields

totProd = 0
while not OBJdbConnection.eof
qta=carrello(cstr(campi("IDprodotto")))

NewTd=""
totale=totale+campi("PrezzoUnitario")*qta+campi("PrezzoUnitario")*(campi("PercentualeIVA")/100)*qta
totProd=totProd+qta
OBJdbConnection.MoveNext
wend
if totProd = 1 then
nProd = " prodotto"
vProd = " c'è "
else
nProd = " prodotti"
vProd = " ci sono "
end if
NewTd=NewTd & "<br><_div align=""center"">Adesso, nel tuo carrello<br>" & vProd & totProd & nProd & "</_div>"
NewRow=NewRow & "<TR>" & NewTd & "</TR>" & chr(13)
totRow="<br><_div align=""center"">Spesa Totale:&nbsp;" & formatCurrency(totale) & "</_div><TD></TR>"
response.write NewRow & totRow
OBJdbConnection.Close
Set OBJdbConnection=nothing
%>
</table></td></tr></table>
<%
end if
set session("carrello")=carrello

End Sub
%>


anche qui non garantisco sulla "corretteza fortmale" del codice, ma anche questo sembra funzionare.

ultima cosa per lo staff. ho postato quì perchè, non essendo un vero programmatore, non me la sono sentita di addiriturra proporre moduli di mia creazione che potrebbero avere bug e altre cose spiacevoli. ciò non toglie che, ovviamente, tutto il mio lavoro è a disposizione della community. [lo]
---------------
Questi li ho fatti io! 8)
http://www.digirolamoeditore.com
http://www.sferaufficio.com

Log in

Login
Password
Memorizza i tuoi dati:

Cerca

 

Sostieni AspNuke

Un piccolo gesto per aiutarci a mantenere AspNuke.it online

Promo

MusicWebItalia.it
Video Testi Traduzioni Spot Colonne sonore Accordi e Spartiti gratis.

Visitatori

Visitatori Correnti : 79
Membri : 0 offline Anna

Iscritti

 Utenti: 18940
Ultimo iscritto : glauco
Lista iscritti
Messaggi privati: 3373 Commenti: 2210 Immagini: 39 Downloads: 144 Articoli: 49 Pagine: 101 Siti web: 558 Notizie: 180 Sondaggi: 11 Preferiti: 5685440 Post sui forum: 51195 Libro degli ospiti: 4 Eventi: 7

Versioni

Temi