Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    24

    Inserimento multiplo record

    Ho un problema con l'inserimento multiplo di records su DB access.
    Ho due pagine: una in cui vi è un form che preleva dati da un DB e l'altra che dovrebbe scrivere su un nuovo DB. Uso gli Array e tutto funziona se stampo la pagina a video - Response.Write(strSQL)& "
    " -. Il problema è la scrittura sul DB, poichè scrive soltanto il primo dei records, cosa c'è che non va?????
    La pagina del form non la invio poichè penso faccia bene il suo ruolo.
    Questa la pagina di inserimento::

    <%@ Language=VBScript %>
    <%
    on error resume next
    %>
    <html>
    <head>
    <style>
    BODY {
    scrollbar-face-color: #94bed7;
    scrollbar-shadow-color: #006699;
    scrollbar-highlight-color: #0055aa;
    scrollbar-3dlight-color: white;
    scrollbar-darkshadow-color: black;
    scrollbar-track-color: #c4deff;
    scrollbar-arrow-color: #FFFFFF;
    }
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Inserimento assenze</title>
    <link REL="stylesheet" TYPE="text/css" HREF="../css/intranet.css" VI6.0THEME="Street Writing">
    <script language="JavaScript">
    <!--
    function apriWin(theURL,winName,features) {
    window.open(theURL,winName,features);
    }
    //-->
    </script>
    </head>
    <body>



    </p>



    <%
    intNumForm = Int((Request.Form.Count +1 ))
    For i= 1 to intNumForm

    ReDim Preserve arraydata_assenza(i)
    ReDim Preserve arrayseleziona(i)
    ReDim Preserve arraycognome(i)
    ReDim Preserve arraynome(i)
    ReDim Preserve arraymotivo(i)
    ReDim Preserve arrayservizio(i)
    ReDim Preserve arraycognome_com(i)
    ReDim Preserve arraynome_com(i)
    ReDim Preserve arraydata_com(i)
    ReDim Preserve arrayora_com(i)

    arraydata_assenza(i) = Request.Form("data_assenza")(i)
    arrayseleziona(i) = Request.Form("seleziona")(i)
    arraycognome(i) = Request.Form("cognome")(i)
    arraynome(i) = Request.Form("nome")(i)
    arraymotivo(i) = Request.Form("motivo")(i)
    arrayservizio(i) = Request.Form("servizio")(i)
    arraycognome_com(i) = Request.Form("cognome_com")(i)
    arraynome_com(i) = Request.Form("nome_com")(i)
    arraydata_com(i) = Request.Form("data_com")(i)
    arrayora_com(i) = Request.Form("ora_com")(i)

    strSQL = "INSERT INTO assenze (data_ass, selezione, cognome_ass, nome_ass, motivo, servizio, cognome_com, nome_com, data_com, ora_com)"
    strSQL = strSQL & " values ("
    strSQL = strSQL & "'" & arraydata_assenza(i) & "', "
    strSQL = strSQL & "'" & arrayseleziona(i) & "', "
    strSQL = strSQL & "'" & arraycognome(i) & "', "
    strSQL = strSQL & "'" & arraynome(i) & "', "
    strSQL = strSQL & "'" & arraymotivo(i) & "', "
    strSQL = strSQL & "'" & arrayservizio(i) & "', "
    strSQL = strSQL & "'" & arraycognome_com(i) & "', "
    strSQL = strSQL & "'" & arraynome_com(i) & "', "
    strSQL = strSQL & "'" & arraydata_com(i) & "', "
    strSQL = strSQL & "'" & arrayora_com(i) & "')"


    Response.Write(strSQL)& "
    "

    Connect.execute (strSQL)
    Next
    Connect.Close
    'response.Redirect "../login_p.asp"
    %>

    </body>
    </html>

    Cosa sbaglio?
    dodi

  2. #2
    quindi a video ti stampa n volte la stringa sql, ma fa una sola insert?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    24
    Esatto, proprio così. La cosa strana e che nello scrivere nel DB, quando aggiunge il solo record che scrive (il primo), l' ID (chiave primaria) sfalsa di 10 numeri, giusto quanti sono gli altri record che dovrebbe scrivere.
    dodi

  4. #4
    Molto probabilmente qualche valore che tenti di inserire contiene un apice che spezza la stringa SQL.
    Prova a commentare "on error resume next" e fai un replace sugli apici dei valori che tenti di inserire:

    Replace(valoreDaInserire,"'","''")

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    24
    Hai ragione, ho scoperto che c'e' un campo data che da fastidio, questo tenterò di risolverlo, ci sono pero' altri due problemi bloccanti: il primo e' che ho dei cognomi che contengono l'apostrofo e non me li scrive (come faccio a superare quest'ostacolo? Se e' proprio sui cognomi che l'applicazione si basa? - si tratta di comunicazioni giornaliere di assenze del personale) ed il secondo che comunque non scrive oltre dieci records?????
    dodi

  6. #6
    Originariamente inviato da dodi
    Hai ragione, ho scoperto che c'e' un campo data che da fastidio, questo tenterò di risolverlo, ci sono pero' altri due problemi bloccanti: il primo e' che ho dei cognomi che contengono l'apostrofo e non me li scrive (come faccio a superare quest'ostacolo? Se e' proprio sui cognomi che l'applicazione si basa? - si tratta di comunicazioni giornaliere di assenze del personale) ed il secondo che comunque non scrive oltre dieci records?????
    Te l'ho già detto, devi fare un replace rimpiazzando l'apice singolo con un apice doppio (Non le virgolette, due volte l'apice)
    Replace(Cognome,"'","''")

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Te l'ha già detto, devi usare la replace...

    Roby

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    24
    Ok ci provo subito.
    Grazie
    dodi

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    24
    Grande, funziona tutto.
    Grazie Lucavizzi.
    Ciao Roby_72
    dodi

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.