Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Questione di Split e ciclo For... Next

    Ciao a tutti.

    "Questione di split", parafrasando una famosa canzone di Mina e Cocciante...

    Dal form generale viene processato ed arriva ad una pagina asp il seguente valore:
    codice:
    4-Venezia Veneto, 5-Milano Lombardia
    Nel db sql server ho i campi IDLuogo, Luogo, Regione.

    Dovrei inserire con una query e per ognuno dei valori che arrivano dal form, in questo modo:

    codice:
    IDRecord=1
    IDLuogo=4
    Luogo=Venezia
    Regione=Veneto
    
    IDRecord=2
    IDLuogo=5
    Luogo=Milano
    Regione=Lombardia
    Per fare ciò utilizzo questo ciclo for...next:
    codice:
    dati_form = split(lebez,",")
    for i = 0 to Ubound(dati_form)
     sql = "insert into tbsqlserver (IDLuogo, Luogo, Regione) VALUES ("
     dati1 = split(dati_form(i),"-") 
     for j = 0 to Ubound(dati1)
      if j = 0 then
       sql = sql & trim(dati1(j))
      else
       sql = sql & ",'" & Replace(trim(dati1(j)),"'","''") & "'"
      end if
    next 
     cn.execute sql
    next
    ma non scrive il dato relativo alla Regione, sapete dirmi perchè?

    Vi ringrazio.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Devi splittare per la virgola, il trattino e lo spazio.

    Roby

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Scusa non ti seguo... :master:

  4. #4
    beh, lo spazio ovvio, ma se per caso ha:
    9-Mirabella Imbaccari Catania, 10-Aosta Valle D'Aosta
    che succede?

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Infatti Mems, giusta ed opportuna osservazione... che succederebbe?
    mi sono messo in un guaio...

  6. #6
    Si, ti sei messo in un guaio.
    Comunque, l'esempio (a meno di casi relativi allo spazio "anomalo") è questo:
    codice:
    <%
    stringa = "1-Roma Lazio, 2-Milano Lombardia"
    arr1 = split(stringa,", ")
    for each item in arr1
    arr2 = split(item,"-")
    valore1 = arr2(0)
    valore1 = replace(valore1,"'","''")
    arr3 = split(arr2(1)," ")
    valore2 = arr3(0)
    valore2 = replace(valore2,"'","''")
    valore3 = arr3(1)
    valore3 = replace(valore3,"'","''")
    sql = "INSERT INTO tabella (campoID, campoCitta, campoRegione) VALUES(" & valore1 & ", '" & valore2 & "', '" & valore3 & "')"
    conn.execute(sql)
    next
    %>
    Per evitare il problema dovresti fare in modo che i dati arrivino tutti divisi dallo stesso carattere -

  7. #7
    In pratica ti serve una stringa di questo tipo:
    1-Roma-Lazio, 2-Milano-Lombardia, 3-Caropepe Valguarnera-Sicilia

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie Mems, sto provando con questi valori d'esempio:
    codice:
    1-Roma-Lazio, 2-Milano-Lombardia, 3-Caropepe Valguarnera-Sicilia
    ma lo script restituisce quest'errore:
    Microsoft VBScript runtime error '800a0009'
    Subscript out of range: '[number: 1]'
    /soft.asp, line 343
    la linea 343 è la rossa:
    codice:
    <%
    stringa = "1-Roma Lazio, 2-Milano Lombardia"
    arr1 = split(stringa,", ")
    for each item in arr1
    arr2 = split(item,"-")
    valore1 = arr2(0)
    valore1 = replace(valore1,"'","''")
    arr3 = split(arr2(1)," ")
    valore2 = arr3(0)
    valore2 = replace(valore2,"'","''")
    valore3 = arr3(1) 
    valore3 = replace(valore3,"'","''")
    sql = "INSERT INTO tabella (campoID, campoCitta, campoRegione) VALUES(" & valore1 & ", '" & valore2 & "', '" & valore3 & "')"
    conn.execute(sql)
    next
    %>

  9. #9
    Se provi con quei valori di esempio è ovvio che ti da errore!
    Devi provare con i valori che ho postato nell'esempio.

  10. #10
    Se vuoi provare con l'altra stringa, ovvero quella con il carattere - al posto degli spazi devi usare questo esempio:
    codice:
    <%
    stringa = "1-Roma-Lazio, 2-Milano-Lombardia, 3-Caropepe Valguarnera-Sicilia"
    arr1 = split(stringa,", ")
    for each item in arr1
    arr2 = split(item,"-")
    valore1 = arr2(0)
    valore2 = arr2(1)
    valore3 = arr2(2)
    sql = "INSERT INTO tabella (campoID, campoCitta, campoRegione) VALUES(" & valore1 & ", '" & valore2 & "', '" & valore3 & "')"
    conn.execute(sql)
    next
    %>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.