Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Transazioni con MSSQL chiarimenti

    Non ho mai utilizzato le transazioni nelle pagine fino ad ora prodotte, ma ora dovendo gestire un carrello ordini mi sarebbe comodo usarle per evitare tabelle temporanee.
    Utilizzo un server MSSQL ed utilizzo solitamente una connessione adodb ed una metodologia di insert tipo ADODB.command
    Premesso che l'utente è libero di inserire nel carrello prodotti e poi non necessariamente chiudere l'ordine e che l'inserimento dei prodotti nel carrello può essere fatto in una qualunque pagina del sito, i chiarimenti sono relativi a come utilizzare le transazioni in questo contesto ovvero :
    la sintassi :
    come do inizio alla transazione (al primo aggiungi carrello)
    come riconosco che sono in una transazione (aggiunta di un ulteriore articolo)
    come chiudo la transazione (chiusura e conferma ordine )
    come annullo la transazione (annulla ordine o abbandono del sito da parte dell'utente)

    un piccolo esempio magari sarebbe perfetto !
    Grazie e buona pasquetta !

  2. #2
    le transazioni non c'entrano nulla in questo caso. riempi tranquillamente il tuo carrello, stai solo attento a farne uno per ogni utente. periodicamente poi svuoterai i carrelli che NON si sono trasformati in ordine.

  3. #3
    saudagi speravo si potessero usare .. okkkey !

  4. #4
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    il funzionamento di un carrello è piuttosto semplice:
    devi creare una tabella in cui salvi tutti gli oggetti che vengono
    messi nel carrello.
    per identificare gli oggetti di ogni singolo utente devi usare le variabili
    di sessione.
    Ad esempio, nella pagina di inserimento dell'oggetto nel carrello,
    verifichi se la variabile di sessione, che ad es. chiamerai Session("Carrello")
    è valorizzata, perchè ad esempio ha già inserito un oggetto nel carrello.
    Se non lo è, allora generi un numero casuale o una stringa casuale lettere-numero
    che sarà la variabile di sessione Carrello per questo utente.
    Quando salvi l'oggetto nella tabella del carrello, oltre ai dati necessari
    (oggetto, prezzo, quantità, codice e tutto quello che ti può tornare utile)
    aggiungi anche il campo della sessione del carrello, in modo da poter tirare
    fuori tutti gli oggetti del carrello di quell'utente e che utilizzi in tutto il
    sito, dalla pagina del carrello e nelle altre relative.
    Se un ordine viene confermato, salvi l'ordine nella tabella ordini,
    salvando anche qui la variabile di sessione Carrello in modo da poter
    trovare sempre gli articoli di quell'ordine, prelevandoli dalla tabella del carrello.
    volendo puoi impostare un flag nella tabella del carrello come Completato per
    quegli ordini che vengono conclusi, in modo da fare una pulizia periodica
    dei record del carrello non completati e pertanto inutili.
    luca
    www.intheweb.it - Internet solutions

  5. #5
    si ti ringrazio per le info, questa è la tecnica che uso abitualmente infatti. Pero operando in applicazioni stand alone scritte in delphi utilizzo sempre le transazioni che sono comodissime per far "cascare" scritture anche molteplici e su + tabelle senza lasciare traccia. Speravo ci fosse analoga tecnica anche per le web apps
    Grazie mille cmq !

  6. #6
    anche le webapp posson usare le transazioni. però in questo caso - come ti ho già detto - le transazioni non sono applicabili: visto che il processo si sviluppa in più pagine, non avresti MAI la sicurezza che il processo si concluda correttamente (con una committ o una rollback). Può invece andar bene in altri contesti (ad esempio un aggiornamento a cascata tutto nella stessa pagina).

  7. #7
    Ok chiarissimo , lo sospettavo ma ora la certezza è meglio !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.