Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Funzione ricorsiva

  1. #1
    Utente bannato L'avatar di javipampa2
    Registrato dal
    Nov 2003
    Messaggi
    210

    Funzione ricorsiva

    ve prego
    Allora la funzione dovrebbe scorrere fino alla fine segnando nella variabile sqlIns una stringa sql.
    Entra la prima distinta che è la 317
    come si vede da qui ha 4 dettagli dal 628 al 636.
    ok?
    il primo 630 ha collegata una distinta(la 337)
    la funzione ricorsiva dovrebber richiamarsi ed elaborare questa distinta...
    id dist id det id_distcoll id dett padre
    317 628 0
    317 629 0
    317 630 337 628
    317 630 628
    317 630 334 628
    317 636 334 630

    questa è la distinta 337
    337 631 0
    337 632 631

    una volta terminata la 337 la funzione dovrebbe ritornare ad elaborare la prima distinta appunto, ovvero andare a vedere il 2° dettaglio che è un altro 630, dopodiche se non ha distinte collegate va all'altro 630 che ha una distinta collegata 334 e quindi si comporta come la 337.Una volta terminata elabora il 636...

    Mi si blocca quando va nella distinta 337, non riesce a tornare nella prima distinta 317 che si stava elaborando e quindi riprendere a scorrerla dove si era fermata.
    GrAZIE!

    qui sotto il codice


    function riempiA(conn,id_elab,id_dist)

    sql = "select * from v_prova_distinta where id_distinta = " & id_dist
    set rsR = conn.execute (sql)
    while not rsR.eof
    if rsR("id_dist") <> "" then
    sqlIns = "Insert into temp_distinta (id_elaborazione,id_distinta,id_distinta_dettaglio ,id_articolo,id_padre,id_dist_coll,codutente,punto _aggancio) values (" & id_elab & "," & id_distinta & "," & rsR("id_distinta_dettaglio") & "," & rsR("id_articolo") & "," & rsR("id_distinta_dettaglio_padre") & "," & rsR("id_dist") & ",'" & fnApici(session("operatore")) & "',0)"

    riempiA conn,id_elab,rsR("id_dist")

    else

    sqlIns = "Insert into temp_distinta (id_elaborazione,id_distinta,id_distinta_dettaglio ,id_articolo,id_padre,id_dist_coll,codutente,punto _aggancio) values (" & id_elab & "," & id_distinta & "," & rsR("id_distinta_dettaglio") & "," & rsR("id_articolo") & "," & rsR("id_distinta_dettaglio_padre") & ",null" & ",'" & fnApici(session("operatore")) & "',0)"

    end if

    rsR.movenext
    wend
    end function

  2. #2
    Utente bannato L'avatar di javipampa2
    Registrato dal
    Nov 2003
    Messaggi
    210
    se faccio una stampa al punto

    while not rsR.eof
    response.Write(rsR("id_distinta_dettaglio") & "
    ")

    mi esce che i dettagli sono...

    628
    629
    630
    631
    632

    e quindi come si vede non riesce a tornare al 2° 630 e continuare...

    ADODB.Recordset error '800a0bcd'

    Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.

  3. #3
    Utente bannato L'avatar di javipampa2
    Registrato dal
    Nov 2003
    Messaggi
    210
    please

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.