Italian CICLO CON INTERROGAZIONE TABELLA MARIADB

bistecc

Member
Buongiorno. Sto interrogando un db su Mariadb in una tabella di anagrafica da cui vorrei estrarre alcuni dati e metterli nelle rispettive label. Nel caso specifico, nel db ho tre righe differenti (7,8,9) che fanno riferimento a 3 ruoli diversi. Ho cercato di risolvere la cosa con un ciclo for che però, terminato il primo giro, mi restituisce questo errore:
1642168135891.png


Ho provato anche a creare una sub per ogni "giro" che deve fare nel db, ma con lo stesso risultato. Sto affrontando la cosa nella maniera sbagliata?

B4X:
Sub spinNome_ItemClick (Position As Int, Value As Object)
    Dim req As DBRequestManager = CreateRequest
    Dim cmd As DBCommand = CreateCommand("get_all_persone_info", Array(spinCognome.SelectedItem, spinNome.SelectedItem))    
    Log("cognome " & spinCognome.SelectedItem)
    Log("nome " & spinNome.SelectedItem)
    Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)      
    If j.Success Then
        req.HandleJobAsync(j, "req")
        Wait For (req) req_Result(res As DBResult)
        Dim row() As Object = res.Rows.Get(0)
        Dim datanascita As Long = row (res.Columns.Get ("datanascita"))
        DateTime.DateFormat="dd/MM/yyyy"
        Dim luogonascita As String = row (4)
        Dim codicefiscale As String = row (6)
        Dim squadraapp As Int = row (10)
        If squadraapp > 0 Then
            idsquadra = squadraapp
            get_squadra_from_cod (squadraapp)
        End If
        Dim codsesso As Int = row (5)
        If codsesso > 0 Then
            idsesso = codsesso
            get_sesso_from_cod (codsesso)
        Else
            Log("ERROR: " & j.ErrorMessage)
        End If
       
            For i = 7 To 9
                
            Log( "i " & i)
            Dim codruolo As Int = row (i)
            idruolo = codruolo
            Log("idruolo " & codruolo)
               
            Dim req As DBRequestManager = CreateRequest
            Dim cmd As DBCommand = CreateCommand("get_ruolo_da_cod", Array(idruolo))
            Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)       
            If j.Success Then
                req.HandleJobAsync(j, "req")
                Wait For (req) req_Result(res As DBResult)
                               
                    Dim row () As Object = res.Rows.Get(0)
                    Dim ruolo As String = row (0)
       
            Log( "row " & ruolo)
               
            Else
            Log("ERROR: " & j.ErrorMessage)
            End If
           
        j.Release
        Next
'     
       
        datanascitaLabel.Text =  DateTime.Date(datanascita)
        luogonascitaLabel.Text = luogonascita
        codfiscLabel.Text = codicefiscale
        squadraLabel.Text = squadraapp
        Else
        Log("ERROR: " & j.ErrorMessage)
    End If
    j.Release
 

bistecc

Member
Grazie comunque a chi mi ha letto! Ho trovato una soluzione appropriata anche se rende il codice più lungo seppur leggibile.
Non saprei però come fare a chiudere il thread
 

Star-Dust

Expert
Licensed User
Longtime User
Non ho letto è appena apparso. Probabilmente ancora non hai licenza e i messaggi appaiono dopo approvazione....un giorno o a volte due
 

bistecc

Member
La licenza? Sono impreparato (anche) su questo!😖 Grazie perché ho capito come fare ad essere licensed user. E' che in passato ho ricevuto risposte anche in giornata e questa volta ho dovuto rifare il thread perché il primo (identico a questo) è stato cancellato.
Sia chiaro, nessun problema ci mancherebbe....E' fantastico avere il vostro supporto. Ma era giusto per sapere come comportarmi.
Buona giornata a tutti
 
Top