Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811

    struttura codice (come inmpostarla al meglio)

    salve a tutti
    in un modulo di classe ho 2 sub ceh mi inseriscono i dati in uyn database , queste 2 sub immettono valori in testata_documento e righe_documetno le qualis sono correlate

    vorrei chiedervi il modo + giusto di impostare le transazioni..
    io faccio cosi'
    codice:
    'ho creato una 3a routine che mi richiama le 2..
    pubilc sub inserisci dati
       call inserisci testata(valori....)
       
    'controllo se c'è stato unerrore esco
      if err<>0 then  
          call ripristina 
          exit sub
      end if
    
    
       call inserisci righe(valori..)
    end sub
    ------------->opure meglio fare cosi?
    -->tutto in una routine
    codice:
    public sub inserisci righe
    on error goto gestore:
    connessione.begintrans
       strsql="insert into testate....
         connessione.execute
    
       strsql ="insert into righe....
         connessione.execute
    
    connessione.committrans
    exit sub
    
    gestiore:
    connesione.rollbacktrans
    end sub
    secondo me il secondo metodo occupa troppe linnee in quanto dentro righe ci devo inserire 20 linnee per ogni testata
    quindi diventa troppo lungo da gestire
    mentre il primo metodo è semplice da gestire ma nn gestisto appieno
    le tarnsazioni in qwuanto se ho un errore in righe nn posso ripristinare le testare

  2. #2

    Re: struttura codice (come inmpostarla al meglio)

    Originariamente inviato da amodio
    secondo me il secondo metodo occupa troppe linnee in quanto dentro righe ci devo inserire 20 linnee per ogni testata
    quindi diventa troppo lungo da gestire
    mentre il primo metodo è semplice da gestire ma nn gestisto appieno
    le tarnsazioni in qwuanto se ho un errore in righe nn posso ripristinare le testare
    Puoi usare il primo metodo con le transazioni in questo modo:
    codice:
    pubilc sub inserisci_dati
    Dim nErr as integer
    
      connessione.begintrans;
      nErr = inserisci_testata(valori....);
      if nErr <> 0 then
        ripristina;
      else
        nErr = inserisci_righe(valori..);
      end if 
    
      if nErr <> 0 then
        connessione.rollbacktrans
      else
        connessione.committtrans
      end if
    end sub
    Fai 2 funzioni invece di 2 sub e gli fai ritornare il codice di errore.

  3. #3
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    si questa è anche una idea
    infatti io nn sapevo come far vedere (prendo in esempio il tuo codice)
    dentro la sub inserisci_dati se chiamo una funzione a vedermi la transazione cmq una funzione..nn ci avevo pensato

    grazie

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.