20 dicembre 2006 alle 14:26:26 sto cercando di implementare in aspnuke un modello di carrello molto semplice che, però, riesca facilmente ad importare dati da altri database. una utility importante per chi è collegato con circuiti di vendita o cose simili che mettono a disposizione il loro database.
la cosa sembra funzionare, però sto trovando alcune difficoltà.
prima di scrivere un post kilometrico per spiegare la situazione faccio una semplice domanda che magari ha una risposta altrettanto semplice.
quando integro tutto il sistema, ad un certo punto mi da questo errore:
Errore di compilazione di Microsoft VB Script (0x800A03F6) Previsto 'End' /includes/clearitall-inc.asp, line 30
so di essere troppo generico, ma magari chi conosce a fondo il codice di aspnuke mi sa dire più o meno che cosa devo verificare. ovviamente se non basta posto i pezzi di codice e spiego meglio la situazione.
20 dicembre 2006 alle 15:52:27 risolto! ho avuto un colpo di genio e sono riuscito a risolvere. però ci sono ancora alcuni problemi... quindi aspettatevi una seconda puntata...
--------------- Questi li ho fatti io! http://www.digirolamoeditore.com http://www.sferaufficio.com
mennella Avanzato
155 Discussioni
20 dicembre 2006 alle 20:31:37 una occhiatina veloce a questo pezzetto di codice chi me la può dare?
Dim oCn, oRs, rSQL, iLine Dim id_prodotto, username, password, var_tot
'Richiamo l' id del prodotto da inserire
id_prodotto = request("id")
'Aggiunta nuovo prodotto nel Carrello 'Controllo che il prodotto sia già presente nel carrello
Set oCn = DBConnexion(DB_SHOP) rSQL = "SELECT id_prodotto, id_user FROM tbl_Carrello WHERE id_prodotto = " & id_prodotto & " and id_user = " & sPseudo Set oRs = DBRecordSet(oCn, rSQL)
'Se il prodotto non esiste, lo aggiungo 'Altrimenti aggiorno la quantita' di 1 unità
if oRs.eof then
'Aggiungo il prodotto rSQL = "insert into tbl_Carrello(id_user, id_prodotto, quantita) values(" & sPseudo & ", " & id_prodotto & ", 1)"
else
'Aggiorno la quantità rSQL = "update tbl_Carrello set quantita = quantita + 1 where id_prodotto = " & id_prodotto & " and id_user = " & sPseudo
end if
quando apro la pagina (è un carrello della spesa e ci arrivo con un link tipo carrello.asp'id=XX) mi da questo errore
Tipo di errore: Errore di run-time di Microsoft VB Script (0x800A01A8) Necessario oggetto: 'DBRecordSet(...)' /shop/carrello-inc.asp, line 13
Tipo di browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Pagina: GET /carrello.asp
la linea 13 è quella in grassetto. il database è stato aggiunto nel file configuration-inc.asp
20 dicembre 2006 alle 20:43:33 Chiama diveramente la variabile id_prodotto, altrimenti è ricorsivo, se usi Request("id"). Chiama la variabile pId, così non ti sbagli con altre variabili.
Esempio: pId = Request("id_prodotto")
nella query modifica id_prodotto = " & pId &"
--------------- A lavare la testa ai somari, ci si rimette l'acqua e il sapone!
20 dicembre 2006 alle 21:04:18 Dichiari delle variabili ( Dim id_prodotto, username, password, var_tot ) che poi non compaiono nelle query, forse vengono usate in altre parti della pagina? Lid del prodotto molto probabilmente viene estrapolato da un form che l'utente compila per effettuare l'ordine, usa Request.Form, controlla che il form che invia contenga lo stesso nome di variabile, purtroppo è molto difficile suggerire soluzioni, specialmente nel campo dei carrelli.
--------------- A lavare la testa ai somari, ci si rimette l'acqua e il sapone!
20 dicembre 2006 alle 21:17:40 potrei sbagliare, ma credo che il problema sia nelle variabili pId (che prima era id_Prodotto) e sPseudo
la prima viene definita da:
pId = request("id")
e credo che prenda l'id che viene dal link usato per arrivare a questa pagina (carrello.asp?id=xx)
la seconda (sPseudo) dovrebbe arrivarmi dai vari include di aspnuke ed è una modifica che ho fatto io. originariamente si doveva accedere con una form di login, ma io volevo fare funzionare l'userid di aspnuke... ho sbagliato qualcosa?
per quanto riguarda la dichiarazione di quelle variabiuli servono in altre parti della pagina. se dici posto tutto il codice (sono una 90ina di righe)
--------------- Questi li ho fatti io! http://www.digirolamoeditore.com http://www.sferaufficio.com
mennella Avanzato
155 Discussioni
20 dicembre 2006 alle 21:46:10 Modificato il 20 dicembre 2006 alle 21:52:27invece di postare tutto, ho messo disponibile lo zip del file carrello-inc.asp a questo indirizzo http://www.digirolamoeditore.com/carrello-inc.zip per completezza d'informazione, il database shopdb.mdb al quale si connette la pagina è composto da tre tabelle: tbl_Carrello id_user testo id_prodotto numerico quantita numerico
tbl_Clienti id contatore username testo
tbl_Prodotti id contatore cod testo nome testo info testo prezzo numerico
penso di avere detto tutto... visto che il problema è scritto molto sopra ricordo che, arrivando alla pagina da un link di tipo carrello.asp?id=xx, mi da questo errore:
Tipo di errore: Errore di run-time di Microsoft VB Script (0x800A01A8) Necessario oggetto: 'DBRecordSet(...)' /shop/carrello-inc.asp, line 13
Tipo di browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Pagina: GET /carrello.asp
per il resto la pagina è inserita in una pagina aspnuke, con include, toppage, bottompage, claritall e tutto il resto... per evitare conflitti (sto provando in locale) ho diabilitato tutti i blocchi grafici.