Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Inserimento multiplo

  1. #1

    Inserimento multiplo

    Salve a tutti ho questo problema
    Sto cercano di fare un inserimento multiplo di record in un db acces

    I valori vengono inviati da la pag 1.asp in questo modo
    codice:
    <form action="save_ass.asp" method="post">
    <input type="hidden" name="oggi" value="<%=day(now)%>" />
    <input type="hidden" name="mese" value="<%=month(now)%>" />
    <input type="hidden" name="anno" value="<%=year(now)%>" />
    
    <input type="hidden" name="nome" value="<%=RS("nome")%>" />
    <input type="hidden" name="cognome" value="<%=RS("cognome")%>" />
    <input type="hidden" name="fax" value="<%=RS("fax")%>">          
    <input type="hidden" name="nday" value="<%=RS("nday")%>" />
    <input type="hidden" name="nmonth" value="<%=RS("nmonth")%>" />
    <input type="hidden" name="nyear" value="<%=RS("nyear")%>"> 
      <%
    RS.MoveNext
    wend
    %>
    </table>
    <input type="submit" value="INVVIA ASSICURAZIONI" name="metodo" />
    e nella pagina 2.asp dove recupero e inserisco nel db è cosi
    codice:
    <%
    For i = 1 To Request.Form.count
    
    arraycognome(i) = Request.Form("cognome")(i)
    arraynome(i) = Request.Form("nome")(i)
    arrayfax(i) = Request.Form("fax")(i)
    
    arraybday(i) = Request.Form("giorno")(i)
    arraybmonth(i) = Request.Form("mese")(i)
    arraybyear(i) = Request.Form("anno")(i)
    
    
    arraynday(i) = Request.Form("nday")(i)
    arraynmonth(i) = Request.Form("nmonth")(i)
    arraynnyear(i) = Request.Form("nyear")(i)
    
    
    
    Set Connn = Server.createobject("ADODB.Connection")
    Connn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("/mdb-database/soci.mdb")
    Connn.Open
    strSQL = "INSERT INTO  ass (cognome,nome,fax,bday,bmonth,byear,nday,nmonth,nyear) VALUES ('"&arrcognome(i)&"','"&arrnome(i)&"','"&arrfax(i)&"','"&arrbday(i)&"','"&arrbmonth(i)&"','"&arrbyear(i)&"','"&arrnday(i)&"','"&arrnmonth(i)&"','"&arrnnyear(i)&"')"
    response.Write strSQL
    response.End()
    objConn.Execute(strSQL)
    Next
    response.Redirect "via.asp"
    %>
    
    Nella pagina 2.asp è  presente il seguente errore
    Microsoft VBScript runtime  error '800a000d'
    
    Type mismatch: 'arraycognome' 
    
    Come posso  fare ?
    giro

  2. #2
    quasi certamente NON hai dimensionato l'array. fallo con REDIM

  3. #3
    tu dici in questo modo
    codice:
    ReDim arraycognome(i) = Request.Form("cognome")(i)
    mi da sempre errore
    Expected end of statement

    ReDim arraycognome(i) = Request.Form("cognome")(i)
    -----------------------^
    giro

  4. #4
    giro, che cosa hai scritto? quella roba lì non è codice, è .... boh! non sai fare una dim o una redim?

  5. #5
    codice:
    
    ReDim arraycognome(i)
    In questo modo

    pero non mi passa nessun valore
    nel senso quando faccio response.Write strSQL

    codice:
    INSERT INTO ass (cognome,nome,fax,bday,bmonth,byear,nday,nmonth,nyear) VALUES ('','','','','','','','','')
    forse sbaglio ancora qualcosa
    giro

  6. #6
    non è che la redim sostituisca l'assegnamento, eh!

    devi comunque scrivere array(i)=qualcosa...

  7. #7
    codice:
    arraycognome(i) = Request.Form("cognome")(i)
    de cosi via con tutto il resto

    quando faccio
    response.Write strSQL
    codice:
    INSERT INTO ass (cognome,nome,fax,bday,bmonth,byear,nday,nmonth,nyear) VALUES ('pinco','pallino','1','12','7','2009','16','3','1991')
    pero quando eseguu la insert nella pagine mi viene questo errore
    codice:
    Index out of range
    An array index is out of range.
    giro

  8. #8
    posta il codice, dai, che gli si dà un'occhiata

  9. #9
    OK grazie molto gentile come sempre

    Prima pagina
    codice:
    
    
    <%
    view=Request.QueryString("view")
    
    
    fday=day(now)
    fmonth=month(now)
    fyear=year(now)
    
    giorno = request.QueryString("day")
    mese = request.QueryString("month")
    anno = request.QueryString("year")
    
    
    
    'response.Write giorno&mese&anno
    'response.End()
    
    Set Conn = Server.createobject("ADODB.Connection")
    Conn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("/mdb-database/soci.mdb")
    Conn.Open
    
    set rs = server.CreateObject("ADODB.recordset")
    sql ="select * from socin where assicurazione='SI' and (bmonth between "&mese&" and "&fmonth&") and (bday between "&giorno&" and "&fday&") and (byear between "&anno&" and "&fyear&") and registrato='registrato'  order by fax"
    
    RS.Open SQL,Conn
    if rs.EOF THEN 
    %>
    <p align="center"><font color="#FF0000" size="4">Nessun record  trovato</font></p>
    
    
    
    
    <%
    rs.Close
    Set rs = nothing
    else
    
    
    %>
    
    <center>
    <table width="900 px" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td colspan="3" align="center">[img]xxx/tessera.jpg[/img]</td>
      </tr>
      <tr>
        <td colspan="3"  align="center">POLIZZA MULTISCI STAGIONE 2008/2009</td>
        </tr>
      <tr>
        <td >SCI CLUB CAIRESE</td>
        <td ></td>
        <td ><div align="right">ELENCO DAL <font color="#FF0000"><%=giorno%>/<%=mese%>/<%=anno%></font> al <font color="#FF0000"><%=fday%>/<%=fmonth%>/<%=fyear%></font> </div></td>
      </tr>
    </table>
    
    
    
    <table  width="900 px" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="100px"><div align="center">Fax ass</div></td>
        <td width="150px"><div align="center">Cognome Assicurato</div></td>
        <td width="150px"><div align="center">Nome Assicurato</div></td>
        <td width="200px"><div align="center">Nato</div></td>
        <td width="200px"><div align="center">Nato il     </div></td>
        <td width="100px"><div align="center">REG </div></td>
      </tr>
    
    
      <%
    While  not rs.EOF
    'Session.LCID = 1033
    %>
      <tr>
        <td width="100px"><div align="center"><%=RS("fax")%></div></td>
        <td width="150px"><div align="center"><%=RS("cognome")%></div></td>
        <td width="150px"><div align="center"><%=RS("nome")%></div></td>
        <td width="200px"><div align="center"><%=RS("nato")%></div></td>
        <td width="200px"><div align="center"><%=RS("nday")%>/<%=RS("nmonth")%>/<%=RS("nyear")%></div></td>
        <td width="100px"><div align="center"><%=RS("bday")%>/<%=RS("bmonth")%>/<%=RS("byear")%></div></td>
      </tr>
    
    <form action="save_ass.asp" method="post">
    <input type="hidden" name="giorno" value="<%=day(now)%>" />
    <input type="hidden" name="mese" value="<%=month(now)%>" />
    <input type="hidden" name="anno" value="<%=year(now)%>" />
    
    <input type="hidden" name="nome" value="<%=RS("nome")%>" />
    <input type="hidden" name="cognome" value="<%=RS("cognome")%>" />
    <input type="hidden" name="fax" value="<%=RS("fax")%>">          
    <input type="hidden" name="nday" value="<%=RS("nday")%>" />
    <input type="hidden" name="nmonth" value="<%=RS("nmonth")%>" />
    <input type="hidden" name="nyear" value="<%=RS("nyear")%>"> 
      <%
    RS.MoveNext
    wend
    %>
    </table>
    <input type="submit" value="INVVIA ASSICURAZIONI" name="metodo" />
    
    </form>
    
    
    <font face="Times New Roman, Times, serif" size="3" color="#000000">
    Con la firma in calce si esprime il consenso alla raccolta ed al trattamento dei dati anagrafici ai sensi della
    Legge 196/2003
     
    
     Il presidente Berigliano Luciano
     </font>
    </center>
    
    
    <%
    rs.Close
    set rs = nothing
    end if
    conn.close
    set conn = nothing
    %>
    <center>
    
    
    
    
    
    [img]xxx/stamp.gif[/img] 
    
    [img]xxx/pag_i.gif[/img]
    </center>
    seconda pagina per inserimento multiplo dove recupero i valori e tento di fare inserimento multiplo
    codice:
    <%
    For i = 1 To Request.Form.count
    
    ReDim arraycognome(i) 
    
    ReDim arraynome(i) 
    ReDim arrayfax(i)
    
    ReDim arraybday(i) 
    ReDim arraybmonth(i) 
    ReDim arraybyear(i) 
    
    
    ReDim arraynday(i)
    ReDim arraynmonth(i) 
    ReDim arraynnyear(i)
    
    arraycognome(i) = Request.Form("cognome")(i)
    arraynome(i) = Request.Form("nome")(i)
    arrayfax(i) = Request.Form("fax")(i)
    
    arraybday(i) = Request.Form("giorno")(i)
    arraybmonth(i) = Request.Form("mese")(i)
    arraybyear(i) = Request.Form("anno")(i)
    arraynday(i) = Request.Form("nday")(i)
    arraynmonth(i) = Request.Form("nmonth")(i)
    arraynnyear(i) = Request.Form("nyear")(i)
    
    
    Set Connn = Server.createobject("ADODB.Connection")
    Connn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("/mdb-database/soci.mdb")
    Connn.Open
    strSQL = "INSERT INTO  ass (cognome,nome,fax,bday,bmonth,byear,nday,nmonth,nyear) VALUES ('"&arraycognome(i)&"','"&arraynome(i)&"','"&arrayfax(i)&"','"&arraybday(i)&"','"&arraybmonth(i)&"','"&arraybyear(i)&"','"&arraynday(i)&"','"&arraynmonth(i)&"','"&arraynnyear(i)&"')"
    'response.Write strSQL
    'response.End()
    'objConn.Execute(strSQL)
    Next
    response.Redirect "via.asp"
    %>
    giro

  10. #10
    due soluzioni

    o usi la preserve (altrimenti OGNI redim azzeri l'array)
    codice:
    For i = 1 To Request.Form.count
    ReDim Preserve arraycognome(i) 
    ... poi tutti gli altri sempre con la preserve
    oppure fai la dim FUORI dal ciclo, così risparmi anche
    codice:
    quanti_elementi=Request.Form.count
    Dim arraycognome(quanti_elementi) 
    ... poi tutti gli altri sempre con la dim
    For i = 1 To quanti_elementi
    ... ovviamente qui NIENTE redim, sei già a posto
    facce sape'

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.