Visto che stò chiedendo molte cose al forum mi sembrava giusto condividera una mia piccola modifica fatta al modulo DBUtils
Si tratta in pratica della stessa funzione per riempire un ListView da un DB SQL in più permette di inserire un immagine indicando la colonna in cui si trova il BLOB nell'SQL. Se il record non contiene un BLOB o il BLOB è nullo viene creata in automatico un'immagine trasparente che non sfalza l'andamento delle righe del ListView.
Inoltre è possibile indicare quale colonna contenga il valore da associare alle singole righe.
Unica limitazione: la stringa SQL deve essere scritta in modo che le prime due colonne siano quelle che devono andare nella prima e seconda riga del ListView, ad esempio:
Nel ListView La prima riga sarà il FirstName la seconda il SecondName.
Spero che sia utile.
B4X:
Sub ExecuteListViewWithBlob(SQL As SQL, Query As String, StringArgs() As String, Limit As Int, _
ListView1 As ListView, TwoLines As Boolean, BlobCol As String, ValueCol As String)
ListView1.Clear
Dim Table As Cursor, bmpMom As Bitmap
Table = SQL.ExecQuery(Query)
For i = 0 To Table.RowCount - 1
Table.Position=i
If Table.GetBlob( BlobCol) = Null Then
bmpMom.InitializeMutable (100,100)
Else
Dim Buffer() As Byte 'declare an empty byte array
Buffer = Table.GetBlob( BlobCol)
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
bmpMom.Initialize2(InputStream1)
End If
If ValueCol = Null Then
ListView1.AddTwoLinesAndBitmap(Table.GetString2( 0), Table.GetString2(1), bmpMom )
Else
ListView1.AddTwoLinesAndBitmap2(Table.GetString2( 0), Table.GetString2(1), bmpMom, Table.GetString(ValueCol) )
End If
Next
End Sub
Si tratta in pratica della stessa funzione per riempire un ListView da un DB SQL in più permette di inserire un immagine indicando la colonna in cui si trova il BLOB nell'SQL. Se il record non contiene un BLOB o il BLOB è nullo viene creata in automatico un'immagine trasparente che non sfalza l'andamento delle righe del ListView.
Inoltre è possibile indicare quale colonna contenga il valore da associare alle singole righe.
Unica limitazione: la stringa SQL deve essere scritta in modo che le prime due colonne siano quelle che devono andare nella prima e seconda riga del ListView, ad esempio:
B4X:
Select FirstName, SecondName, BlobCol, IDCol from persone.........
Nel ListView La prima riga sarà il FirstName la seconda il SecondName.
Spero che sia utile.
Last edited: