cannot insert data in a table from a csv

cirollo

Active Member
Licensed User
Longtime User
Hi!

I'm stuck in this problem, I always get an error like this:

destdive 13550002227java.lang.ArrayIndexOutOfBoundsException: length=7; index=7

B4X:
   '****************************************************************
   ' popolo la tabella destinazione diverse
   If File.Exists(sdRoot, "destdive.csv") = True Then
      DBUtils.DropTable(SQL1, "DestDive")   
      ' Creo la tabella destinazioni diverse
      Dim m As Map
      m.Initialize
      m.Put("Seriale", DBUtils.DB_TEXT)
      m.Put("IdCli", DBUtils.DB_TEXT)
      m.Put("CodDes", DBUtils.DB_TEXT)
      m.Put("RagSocDes", DBUtils.DB_TEXT)
      m.Put("IndirDes", DBUtils.DB_TEXT)
      m.Put("CapDes", DBUtils.DB_TEXT)
      m.Put("LocaliDes", DBUtils.DB_TEXT)
      m.Put("ProvDes", DBUtils.DB_TEXT)
      m.Put("TelDes", DBUtils.DB_TEXT)
      DBUtils.CreateTable(SQL1, "DestDive", m, "Seriale")
      LblStatus.Text = "Inserimento Destinazioni Diverse Clienti"
      SQL1.BeginTransaction
      Dim Reader As TextReader
         Reader.Initialize(File.OpenInput(sdRoot, "destdive.csv"))
         Dim line As String
         '   Reader.ReadLine
        line = Reader.ReadLine
      Dim j,l As Int
      Dim ColumnContent() As String
      Do While line <> Null 
           j = j + 1
         l = l + 1
          If l = 40 Then 'puliamo il log x velocizzare
            l = 0
            TxtLog.Text = ""
         End If
              Try
            ColumnContent = Regex.Split(";", line)
            TxtLog.Text = "Destinazione Diversa Cliente: " &ColumnContent(0) &" - "&ColumnContent(2)&Chr(10)&TxtLog.Text
                 For I = 0 To 8
                    ColumnContent(I) = ColumnContent(I).Replace(QUOTE, "")
                   ColumnContent(I) = ColumnContent(I).Replace(",", " ")
               If ColumnContent(I) = "." OR ColumnContent(I) = "" Then
                  ColumnContent(I) = " "
               End If 
            Next
            SQL1.ExecNonQuery2("INSERT INTO DestDive VALUES (?,?,?,?,?,?,?,?,?)", Array As Object (j, ColumnContent(0), ColumnContent(1), ColumnContent(2), ColumnContent(3), ColumnContent(4), ColumnContent(5), ColumnContent(6), ColumnContent(7), ColumnContent(8)))
          '      SQL1.ExecNonQuery2("INSERT INTO DestDive VALUES (?,?,?,?,?,?,?,?)", Array As Object (j, ColumnContent(0), ColumnContent(1), ColumnContent(2), ColumnContent(3), ColumnContent(4), ColumnContent(5), ColumnContent(6), ColumnContent(7),j))
         Catch
              Log("destdive "&j&"-"ColumnContent(0)&LastException.Message)
          End Try
         line = Reader.ReadLine
         DoEvents
        Loop
       Reader.Close
      SQL1.TransactionSuccessful
       SQL1.EndTransaction
   End If
   ProgressBar1.Progress = 20
   TxtLog.Text = ""
   LblStatus.Text = ProgressBar1.Progress &"%"

what It is???? It seems the csv file is ok!
 

cirollo

Active Member
Licensed User
Longtime User
finally

thanks to klaus that send me the correct hint, I solved it

there was a column more than defined

thanks!
 
Upvote 0
Top