Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. vitacillina
    3. Post
    V

    vitacillina

    @vitacillina

    • Profilo
    • Chi segue 0
    • Da chi è seguito 0
    • Discussioni 7
    • Post 29
    • Migliore 0
    • Gruppi 0
    Iscrizione Ultimo Accesso
    0
    Reputazione
    29
    Post
    0
    Visite al profilo
    0
    Da chi è seguito
    0
    Chi segue
    User

    Post creati da vitacillina

    • RE: [ASP] Ordinamento di un file CSV

      Allora con la ricerca su google ho capito che devo usare un record disconnesso.

      Questo è il mio codice ASP:

              
             set csvrecordset = Server.CreateObject("ADODB.Recordset")
              csvrecordset.CursorType = 3
              csvrecordset.Locktype = 3
              csvrecordset.CursorLocation = 3
       
              csvrecordset.Fields.append "ES", 200, 255
              csvrecordset.Fields.append "DATE", 200, 255
              csvrecordset.Fields.append "TIME", 200, 255
              csvrecordset.Fields.append "LINE", 200, 255
              csvrecordset.open()
       
              Do While Not objFile.AtEndOfStream
       
              csvrecordset.AddNew
              csvrecordset("ES") = arrText(0)
              csvrecordset("DATE") = arrText(1)
              csvrecordset("TIME") = arrText(2)
              csvrecordset("LINE") = arrText(3)  
              csvrecordset.Update 
              csvrecordset.Sort = "TIME, LINE ASC"
       
              Loop
      

      Se il file csv originale è ordinato con i campi TIME and LINE DESC:

      ES,"DATE","TIME","LINE"
      DM20,"31/10/08","21:03:28","DM2040457 "
      DM20,"31/10/08","21:28:32","DM2040457 "
      DM20,"31/10/08","21:38:32","DM2040457 "
      DM20,"31/10/08","22:28:41","DM2040457 "
      DM20,"31/10/08","22:40:44","DM2040457 "
      DM20,"31/10/08","21:07:18","DM2049303 "
      DM20,"31/10/08","21:22:56","DM2049303 "
      DM20,"31/10/08","21:38:40","DM2049303 "
      DM20,"31/10/08","07:45:00","DM2049411 "
      

      Lo script ASP funziona perchè importa nel db mysql i record del csv più vecchi, cioè questi:

      DM20,"31/10/08","21:03:28","DM2040457 "
      DM20,"31/10/08","21:07:18","DM2049303 "
      DM20,"31/10/08","07:45:00","DM2049411 "
      

      Mentre se il file csv è ordinato solo con il campo TIME ASC:

      ES,"DATE","TIME","LINE"
      DM20,"31/10/08","07:45:00","DM2049411 "
      DM20,"31/10/08","21:03:28","DM2040457 "
      DM20,"31/10/08","21:07:18","DM2049303 "
      DM20,"31/10/08","21:22:56","DM2049303 "
      DM20,"31/10/08","21:28:32","DM2040457 "
      DM20,"31/10/08","21:38:32","DM2040457 "
      DM20,"31/10/08","21:38:40","DM2049303 "
      DM20,"31/10/08","22:28:41","DM2040457 "
      DM20,"31/10/08","22:40:44","DM2040457 "
      

      Lo script ASP non funziona perchè importa tutte le righe nel db mysql... perchè ?

      Il metodo:

      
      csvrecordset.Sort = "TIME, LINE ASC"
      
      

      Non ordina il file csv ?

      postato in Coding
      V
      vitacillina
    • [ASP] Ordinamento di un file CSV

      Ciao a tutti, spero possiate aiutarmi.

      Avrei necessità tramite ASP di aprire, leggere, scorrere in tutte le sue righe un file CSV e di ordinarlo secondo un campo già presente all'interno di tutte le righe del file CSV stesso.

      Non ho idea come si fa.

      Aspetto suggerimenti, grazie.
      V.

      postato in Coding
      V
      vitacillina
    • [ASP] Problema con array

      Ciao a tutti.

      Con questo estratto di codice ASP leggo un file csv, splitto per virgola la stringa che contiene i nomi delle colonne ed importo il contenuto del file csv in un db mysql:

      
      strText = objFile.readLine   
      arrText = split(strText, ",", 17)
      
      

      Sapete dirmi come faccio a contare che gli elementi ottenuti dall'array siano sempre e soltanto 16 ?

      Cioè meno di 16 o più di 16 il sistema deve bloccarsi.

      Mi spiego meglio con un esempio.

      Ho due file csv: uno corretto, l'altro sbagliato.

      La differenza che il file csv corretto contiene questa stringa composta da 17 elementi:

      0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

      mentre il file csv sbagliato contiene questa stringa composta da 23 elementi:

      0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22

      Quando il file CSV è sbagliato, cioè contiene un numero di elementi diversi da 16, devo rifiutare il caricamento nel db mysql.

      Avevo pensato, dopo aver splittato la stringa csv per virgola, di contare gli elementi dell'array è se uguali a 16 proseguo altrimenti mi fermo.

      Ma il controllo:

      
      strText = objFile.readLine   
      arrText = split(strText, ",", 17)
       
      if uBound(arrText) = 16 then
      ...
         else
            response.write uBound(arrText)
      end if
      
      

      sia se carico il csv corretto o sbagliato stampa sempre 16 come numero di elementi dell'array...

      Dove sbaglio?

      postato in Coding
      V
      vitacillina
    • RE: Split e query INSERT INTO

      @cali1981 said:

      Non devi mettere strSplitDati(0), strSplitDati(1) ecc ma strSplitDati(i), strSplitDati(i + 1) ecc

      Grazie! 🙂

      postato in Coding
      V
      vitacillina
    • Split e query INSERT INTO

      bentrovati.

      da un form dati recupero la seguente stringa:

      CM1,,,,CS1,,,,CS4,,,,CS5,,,,CS6,,,,CS7,Ins,1,1,CS8,Suf,2,2,
      

      I dati risultanti andrebbero inseriti nel db mysql quattro x volta, cioè così:

      CM1,,,,
      CS1,,,,
      ...
      CS7,Ins,1,1,
      CS8,Suf,2,2,

      La splitto per virgola STEP 4 ed ottengo una lista di valori:

          strSplitDati = Split(Request.Form("dati"), ",")
       
              for i = LBound(strSplitDati) to UBound(strSplitDati) STEP 4
              response.write(strSplitDati(i) & "<br /><br />" )
              next
      

      Ho previsto la insert all'interno del ciclo... ma stampa "n" query tutte uguali.... dove sbaglio?

          strSplitDati = Split(Request.Form("dati"), ",")
       
              for i = LBound(strSplitDati) to UBound(strSplitDati) step 4
              response.write(strSplitDati(i) & "<br /><br />" )
       
              strSql = " INSERT INTO "
              strSql = strSql & " tbl "
              strSql = strSql & " ( "
              strSql = strSql & "   testo_A, "
              strSql = strSql & "   testo_B, "
              strSql = strSql & "   numero_A, "
              strSql = strSql & "   numero_B "
              strSql = strSql & " ) "
              strSql = strSql & "   VALUES "
              strSql = strSql & " ( "
              strSql = strSql & "  '" & strSplitDati(0) & "', "
              strSql = strSql & "  '" & strSplitDati(1) & "', "
              strSql = strSql & "   " & strSplitDati(2) & ", "
              strSql = strSql & "   " & strSplitDati(3) & " "
              strSql = strSql & " ) "
              cn.execute strSql
       
              next
      
      postato in Coding
      V
      vitacillina
    • [Javascript] Problema con numero variabile di campi checkbox.

      Ciao.
      Ho un problema con questo codice misto ASP/Javascript.

      1. Tramite ASP si popola un form secondario, generato da un form principale, con una serie di checkbox, campi di testo e select;

      2. Se si mette il flag nei vari checkbox del form secondario e si compilano gli altri campi, questi valori vanno riportati in un unico campo nascosto del form principale;

      Il problema è che se il checkbox restituito dalla query SQL, è uno solo, la stringa:

       return LG.substr(); 
      ```si valorizza correttamente, riportando il nome del checkbox selezionato e gli altri valori provenienti dagli altri campi del form nella forma:
       
      

      S3;Dettaglio;1;2

      return LG.substr();

       
      

      undefined;undefined;undefined;undefined

       
      Ecco il codice misto:
       
      

      <script language="javascript" type="text/javascript">

      <!--

      function InserisciCampoNascosto(LG) {

          window.opener.document.form.campo_nascosto.value=LG;        
          return LG.substr();
      

      }

      //-->
      </script>

      ...

      <form name="form">

      <%
      rs.MoveFirst()
      Do While Not rs.EOF
      %>

      <input type="checkbox" name="DETTAGLIO" value="<%=rs("DETTAGLIO")%>">

      <!--seguono altri campi del form -->

      <%
      rs.MoveNext()
      Loop
      %>

      ...

      <a href="javascript:InserisciCampoNascosto(document.form.DETTAGLIO.value)">
      <img border="0" src="/img/salva.gif"></a>

      postato in Coding
      V
      vitacillina
    • RE: Mail con cdosys

      Prova con i codici allegati; se non funziona nemmeno questa volta controlla che l'oggetto CDOSYS sia installato sul server e prova a cambiare la configurazione dei parametri d'invio.
      Ciao

      postato in Coding
      V
      vitacillina
    • RE: Mail con cdosys

      @rosaria said:

      Ho fatto come mi hai detto ma quando premo invia con alcuni campi vuoti non si vede nulla.

      Posta il codice completo della pagina.
      ciao

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      giusto scusa, rimetti strvariabile come era all'inizio e aggiunge quella che ti ho detto ora, strVariabile = arrText(7) prima di response.write "record già presente!<br>" e dopo 'ALTRIMENTI SU PRIMO IF
      else

      Mitico, grande !!!
      Adesso si funziona!!!
      1000 grazie

      :ciauz:

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      Questo è il nuovo codice ASP:

       
      PercorsoCSV = "D:\Inetpub\wwwroot\CSV\file1.csv "
       
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        strURL = percorsoCSV 
       
        Set objFile = objFSO.OpenTextFile(strURL)  
        objFile.SkipLine()  
       
        strVariabile = ""
        Do While Not objFile.AtEndOfStream
       
         strText = objFile.readLine   
         arrText = split(strText, ",", 17)
       
        strVariabile = arrText(7)
       
      'CONTROLLO NEL DB L'ESISTENZA DELLA RIGA UGUALE
      SQL = " SELECT * " 
      SQL = SQL & " FROM "  
      SQL = SQL & " tabellaCSV " 
      SQL = SQL & " WHERE "
      SQL = SQL & " NOME = '" & replace(arrText(0), """", "") & "' " 
      SQL = SQL & " AND "  
      SQL = SQL & " DATA = " & formatDBDate(replace(arrText(2), """", ""), "mysql") & " " 
      SQL = SQL & " AND "  
      SQL = SQL & " ORA = '" & replace(arrText(3), """", "") & "' "
      SQL = SQL & " AND " 
      SQL = SQL & " CODICE_PERSONALE = '" & replace(arrText(7), """", "") & "' "
      SQL = SQL & " AND " 
      SQL = SQL & " DESCRIZIONE = '" & replace(arrText(8), """", "") & "' "
      Set objRS = Server.CreateObject("ADODB.Recordset")
      objRS.open SQL, cn
       
      'APERTURA PRIMO IF E CONTROLLO SU objRS
      if objRS.eof then
       
      'QUI CONTROLLO LE RIGHE SIMILI ED INSERISCO NEL DB MYSQL
      if objRS("CODICE_PERSONALE") <> strVariabile  then
       
      strSql = "INSERT INTO tabellaCSV ... " 
      cn.execute(strSql)
       
       end if
       
      'ALTRIMENTI SU PRIMO IF     
      else
       
        response.write "record già presente!<br>"
       
      'CHIUSURA PRIMO IF
      end if
        Loop
       
        objRS.Close()
        Set objRS = Nothing 
       
        cn.Close()
        Set cn = nothing
       
      Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
       
      if fsoMyFile.FileExists (PercorsoCSV) then
         fsoMyFile.DeleteFile PercorsoCSV
      end if
       
      Set fsoMyFile = Nothing 
      Set objFSO = Nothing
      
      
      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      Ho provato ma con questa modifica non inserisce più nulla nel db mysql. 😞

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      Invece di fare:

      strVariabile = objRS("CODICE_PERSONALE")

      lo toglie e metti

      strvariabile = arrText(7)

      prima della riga con il commento:
      'CONTROLLO NEL DB L'ESISTENZA DELLA RIGA UGUALE

      Ho provato ma con questa modifica non inserisce più nulla nel db mysql. 😞
      Fatico a seguirti, sorry.

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      Beh questa è una cosa che non va bene, quindi devi trovare un altro modo per farlo. Ad esempio, strvariabile = arrText(7)

      Scusa non ho capito. 😞

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      Ok, allora il problema è che strVariabile = objRS("CODICE_PERSONALE")
      lo fa solo se la riga non è presente nel db, quindi lui la prima volta inseirsce la riga 1, strvariabile diventa uguale a quel codice e la seconda non la inserisce. La seconda volta invece strvaribile non lo valorizza perchè non entra nell'if. Giusto?

      Scusa non ho capito se mi hai dato la soluzione al problema o hai chiesto semplicemente conferma del tuo ragionamento al riguardo...:dull:

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      Ok, allora il problema è che strVariabile = objRS("CODICE_PERSONALE")
      lo fa solo se la riga non è presente nel db, quindi lui la prima volta inseirsce la riga 1, strvariabile diventa uguale a quel codice e la seconda non la inserisce. La seconda volta invece strvaribile non lo valorizza perchè non entra nell'if. Giusto?

      Giustissimo.

      postato in Coding
      V
      vitacillina
    • RE: Problema inserimento record doppi

      @cali1981 said:

      Scusami, ma le righe devono essere uguali o simili? Perchè tu escludi le righe identiche, perchè usi tutti AND nella query. in teoria dovrebbe inserire la riga anche la prima volta, a meno che la stessa riga sia già dentro. Altrimenti, il codice fa bene a inserire tutte e 4 le righe perchè hanno data diversa.

      Grazie.

      Il criterio di esclusione è che la riga attuale letta dal file csv sia simile a quella precedente: se è così va esclusa dalla query di inserimento dati.

      Infatti alla prima lettura del file csv:

      • il primo IF controlla che non ci siano record-righe uguali già registrate nel db mysql;

      • il secondo IF mette a confronto i due CODICI PERSONALI, quello letto e quello della riga precedente del file csv e se sono diversi li registra nel db:

      'QUI CONTROLLO LE RIGHE SIMILI ED INSERISCO NEL DB MYSQL
      if objRS("CODICE_PERSONALE") <> strVariabile  then
       
      strSql = "INSERT INTO tabellaCSV ... " 
      cn.execute(strSql)
       
        strVariabile = objRS("CODICE_PERSONALE")
       
      end if
      

      Il problema è nel primo IF perchè in un' eventuale seconda lettura dello stesso file csv, non trova la riga esclusa in prima lettura e la inserisce nel db.

      Mi segui?

      postato in Coding
      V
      vitacillina
    • RE: Mail con cdosys

      Ciao.

      A parte che è un problema javascript e non ASP, ma ti sei dimenticata di chiamare la funzione javascript di controllo nel form, cioè questa riga:

      
      <form name="modulo" id="form" method="post" action="mail_inviata.asp">
      
      

      deve diventare:

      
      <form name="modulo" id="form" method="post" action="mail_inviata.asp" onSubmit="return Modulo(this)">
      
      postato in Coding
      V
      vitacillina
    • Problema inserimento record doppi

      Ciao a tutti.

      Avrei messo a punto una semplice procedura asp con la quale si fa l'upload di un file csv in un server e si registrano i dati in esso contenuti in una tabella di un database mysql.

      Per evitare di caricare record doppi o non conformi alle condizioni previste nella procedura, ho messo un controllo sui record già esistenti nella tabella prima dell'inserimento nel db.

      Mi sono accorto però che quando riprovo ad inserire lo stesso file csv i dati che prima erano stati esclusi mi vengono aggiunti.

      Ad esempio nel file csv ho le seguenti righe:

      riga 1 = PIPPO, 25/07/2008, 11:50, XXXZZZ, UTENTE
      riga 2 = PIPPO, 26/07/2008, 01:50, XXXZZZ, UTENTE
      riga 3 = CAIO, 25/07/2008, 17:50, XXXYYY, NEWBIE
      riga 4 = TIZIO, 26/07/2008, 10:05, YYYZZZ, ADMIN

      La prima volta che carico il file csv nel db mi ritrovo con le righe 1-3 e 4.

      La seconda volta che carico lo stesso file csv mi ritrovo nel db anche la riga 2 che il primo inserimento aveva escluso perchè riga simile alla riga 1.

      Questo è il codice ASP:

       
      PercorsoCSV = "D:\Inetpub\wwwroot\CSV\file1.csv "
       
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        strURL = percorsoCSV 
       
        Set objFile = objFSO.OpenTextFile(strURL)  
        objFile.SkipLine()  
       
        strVariabile = ""
        Do While Not objFile.AtEndOfStream
       
         strText = objFile.readLine   
         arrText = split(strText, ",", 17)
       
      'CONTROLLO NEL DB L'ESISTENZA DELLA RIGA UGUALE
      SQL = " SELECT * " 
      SQL = SQL & " FROM "  
      SQL = SQL & " tabellaCSV " 
      SQL = SQL & " WHERE "
      SQL = SQL & " NOME = '" & replace(arrText(0), """", "") & "' " 
      SQL = SQL & " AND "  
      SQL = SQL & " DATA = " & formatDBDate(replace(arrText(2), """", ""), "mysql") & " " 
      SQL = SQL & " AND "  
      SQL = SQL & " ORA = '" & replace(arrText(3), """", "") & "' "
      SQL = SQL & " AND " 
      SQL = SQL & " CODICE_PERSONALE = '" & replace(arrText(7), """", "") & "' "
      SQL = SQL & " AND " 
      SQL = SQL & " DESCRIZIONE = '" & replace(arrText(8), """", "") & "' "
      Set objRS = Server.CreateObject("ADODB.Recordset")
      objRS.open SQL, cn
       
      'APERTURA PRIMO IF E CONTROLLO SU objRS
      if objRS.eof then
       
      'QUI CONTROLLO LE RIGHE SIMILI ED INSERISCO NEL DB MYSQL
      if objRS("CODICE_PERSONALE") <> strVariabile  then
       
      strSql = "INSERT INTO tabellaCSV ... " 
      cn.execute(strSql)
       
        strVariabile = objRS("CODICE_PERSONALE")
       
       end if
       
      'ALTRIMENTI SU PRIMO IF     
      else
       
        response.write "record già presente!<br>"
       
      'CHIUSURA PRIMO IF
      end if
        Loop
       
        objRS.Close()
        Set objRS = Nothing 
       
        cn.Close()
        Set cn = nothing
       
      Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
       
      if fsoMyFile.FileExists (PercorsoCSV) then
         fsoMyFile.DeleteFile PercorsoCSV
      end if
       
      Set fsoMyFile = Nothing 
      Set objFSO = Nothing
      
      

      Sapete darmi qualche buon consiglio per ovviare al problema?
      Grazie

      postato in Coding
      V
      vitacillina
    • RE: Problema con inserimento valori in db

      Ok

      In realtà è più semplice di quanto potessi pensare perchè è stato sufficiente utilizzare una proprietà di mysql che consente di utlizzare questo sistema di inserimento dati tramite una query:

      INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
      

      Quindi è stato sufficiente splittare per virgola i dati che arrivano dal form, senza alcuna necessità di utilizzare array bidimensionali, cicli annidati, etc, etc.

      Ciao e grazie x l' aiuto.

      postato in Coding
      V
      vitacillina
    • RE: Problema con inserimento valori in db

      .

      postato in Coding
      V
      vitacillina