Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Piu INSERT con alcuni dati NON NUMERICI incrementali

    Salve a tutti, avrei bisogno di fare N insert per la stessa query però con alcuni campi non numerici incrementali...

    Cerco di spiegarmi meglio: preparo una INSERT con un campo di tipo testo come questo: FA_RU_01
    e a partire da questo campo avrei bisogno ad esempio di fare 10 INSERT con il campo che si autoincrementa tipo:FA_RU_01, FA_RU_02, FA_RU_03, FA_RU_04 ... e così via...

    C'è qualche modo per poterlo fare con ASP se non dividendo la stringa in "FA_RU_" e "01", facendo aumentare solo quello numerico e poi unendoli dopo?
    Grazie in anticipo
    F
    Ultima modifica di Partisan75; 31-03-2017 a 16:53

  2. #2
    sì, puoi farlo

    1. con SPLIT ti ricavi l'ultimo segmento, quello col numero, e la radice (cioè i primi due segmenti)
    2. te li tieni da parte in due variabili (es: radice e progressivo)
    3. incrementi progressivo del passo che vuoi
    4. riformatti progressivo a due cifre
    5. lo riunisci a radice

    that's all folks!

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Grazie mille, così lo divido solo in 2 ma per dividerlo in 3?

    Dim parti, radice, progressivo
    parti = Split(Request("Codice"), "_")
    radice = parti(0)
    'Controllo la lunghezza dell'array. Se il progressivo puo essere omesso, questo mi evitera un errore
    If UBound(parti) > 0 Then
    progressivo = parti(1)
    End If
    'Uso le variabili radice e progressivo
    Response.Write "radice: " & radice
    Response.Write "<br>progressivo: " & progressivo

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    ci sono arrivato grazie:


    Dim parti, radice1, radice2, progressivo
    parti = Split(Request("Codice"), "_")
    radice1 = parti(0)
    radice2 = parti(1)
    'Controllo la lunghezza dell'array. Se il progressivo puo essere omesso, questo mi evitera un errore
    If UBound(parti) > 0 Then
    progressivo = parti(2)
    End If
    'Uso le variabili radice e progressivo
    Response.Write "radice1: " & radice1
    Response.Write "<br>radice2: " & radice2
    Response.Write "<br>progressivo: " & progressivo

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    scusa ancora, ma non riesco a ciclare perche con la variabile "Volte" passo ad esempio 5


    dim intInizio, intFine, ctCiclo
    'Inizializzazione delle variabili
    intInizio = 1
    intFine = Volte
    for ctCiclo = intInizio to intFine

    ...poi

    Codice = Request("Codice")

    Dim parti, radice1, radice2, progressivo
    parti = Split(Request("Codice"), "_")
    radice1 = parti(0)
    radice2 = parti(1)
    progressivo = parti(2)
    'Response.Write "<br>progressivo: " & radice1 &"_" & radice2 &"_"& (progressivo+1)

    SQL2 = "INSERT ... (Codice...) VALUES ('" & radice1 &"_" & radice2 &"_"& (progressivo+1) & "',) ... )

    next

    fino a qui funziona ma per tutte le 5 VOLTE (variabile di cui sopra) ripete sempre lo stesso codice aumentato di 1... e non continua la progressione...

  6. #6
    cosa vuol dire "non continua la progressione"? Fa' un esempio, grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Quote Originariamente inviata da optime Visualizza il messaggio
    cosa vuol dire "non continua la progressione"? Fa' un esempio, grazie
    Mi sono espresso male, voglio dire che ripetendo per la variabile, nell'esempio 5 volte, lo split lo fa sempre sullo stesso "codice", nell'esemio FA_RU_01, invece il secondo ciclo non dovrebbe fare lo split sempre su FA_RU_01 ma su FA_RU_02 fino ad arrivare a FA_RU_05....

    Riassumendo:
    Con il mio codice lo split funziona cioè da FA_RU_01 diventa FA_RU_2, ma ripetendo per 5 volte il ciclo ottengo 5 volte l'insert ma sempre con FA_RU_2!
    Grazie

  8. #8
    infatti, c'è un errore di logica. devi incrementare progressivo (cioè progressivo=progressivo+1)

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Quote Originariamente inviata da optime Visualizza il messaggio
    infatti, c'è un errore di logica. devi incrementare progressivo (cioè progressivo=progressivo+1)
    Grazie, lo faccio o almeno credo, ma mi rimane lo stesso numero, cioè va avanti solo di 1 e poi ripete sempre lo stesso...

    codice HTML:
        dim intInizio, intFine, ctCiclo
        intInizio = 1
        intFine = Volte
        for ctCiclo = intInizio to intFine
    
            Dim parti, radice1, radice2, progressivo
            parti = Split(Request("Codice"), "_")
            radice1 = parti(0)
            radice2 = parti(1)
            progressivo = parti(2)
            codiceprogressivo = radice1 &"_" & radice2 &"_"& (progressivo+1)
    
            SQL2 = "INSERT INTO prodotti (Codice) VALUES ('" & codiceprogressivo & "'')"
    
    next

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    ho risolto così:

    codice HTML:
        Dim parti, radice1, radice2, progressivo
        parti = Split(Request("Codice"), "_")
        radice1 = parti(0)
        radice2 = parti(1)
        progressivo = parti(2)
    
        dim intInizio, intFine, ctCiclo
        intInizio = 1
        intFine = Request("Volte")
        for ctCiclo = intInizio to intFine
    
        progressivo=(progressivo+1)
        codiceprogressivo = radice1 &"_" & radice2 &"_"& (progressivo)
    grazie ancora

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.