Italian Caricare immagine da DB

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Ciao,
come faccio per caricare un'immagine da un database mysql?
 

giannimaione

Well-Known Member
Licensed User
Longtime User
qualche informazione in più?
in che formato è memorizzata ? forse BLOB o LONGBLOB ?
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Ciao,
si è in formato LONGBLOB... Ma posso anche cambiare se c'è necessità perché ancora non ho caricato tutte le immagini che voglio.
 

giannimaione

Well-Known Member
Licensed User
Longtime User
un esempio da perfezionare:

Dim Cursor1 as Cursor
Dim Buffer() As Byte
Buffer = Cursor1.GetBlob("image"):' nome del campo (LONGBLOB) del database
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
Dim Bitmap1 As Bitmap:' dichiaro una bitmap
Bitmap1.Initialize2(InputStream1)
InputStream1.Close
Activity.SetBackgroundImage(Bitmap1):' visulizzo immagine

non ho modo di verificare.... ma ad "occhio" dovrebbe funzionare
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
un esempio da perfezionare:

Dim Cursor1 as Cursor
Dim Buffer() As Byte
Buffer = Cursor1.GetBlob("image"):' nome del campo (LONGBLOB) del database
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
Dim Bitmap1 As Bitmap:' dichiaro una bitmap
Bitmap1.Initialize2(InputStream1)
InputStream1.Close
Activity.SetBackgroundImage(Bitmap1):' visulizzo immagine

non ho modo di verificare.... ma ad "occhio" dovrebbe funzionare

Mi puoi spiegare cosa fa la variabile Cursor? La documentazione non è chiara
 

LucaMs

Expert
Licensed User
Longtime User
è un puntatore al record corrente di un db SQLite!

A te serve leggere da un db MySql; se sta sul tuo pc, potresti ad usare RDC
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Sto provando il codice... Mi dice che il cursore deve essere inizializzato.. Al DB accedo normalmente con un nome utente e password del server
 

LucaMs

Expert
Licensed User
Longtime User
Si, il cursore funziona su SQLite, come ti ho scritto (quel cursore).

Quindi, è un DB remoto, ma tu sei amministratore? Puoi installare qualcosa sulla stessa macchina del server (RDC)?
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Si certo che sono amministratore e che posso installare qualcosa
 

LucaMs

Expert
Licensed User
Longtime User
Perfetto, allora dovresti proprio usare RDC.

Studialo bene, che se poi riesco a ricordarmelo e a ritrovare le prove che ho fatto, ti do una mano :)
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Però io ho già creato un sistema che interroga il database, esegue le query e tutto... Non vorrei cambiare tutto per un campo solo.
O altrimenti mi basterebbe capire come far ritornare un cursore
 

LucaMs

Expert
Licensed User
Longtime User
Quindi ti connetti tramite device e scarichi dati dal server al dispositivo?

Se è così dovrai scaricare le immagini in formato binario, salvarle sul disposito e ricaricarle nelle imageview (credo! non sono espertissimo, anzi!)
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
E' un'idea, ma così riempio il device del cliente con una serie infinita di immagini
 

LucaMs

Expert
Licensed User
Longtime User
Beh, se puoi, scarichi, leggi e cancelli. D'altra parte non c'è altro modo, no?
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Bè ecco, non avevo pensato alla cancellazione del file! :)
Ma adesso mi sorge un dubbio.. Come leggo un file binario?
 

Straker

Active Member
Licensed User
Longtime User
Oppure puoi semplificare il database.
Metti le immagini in una cartella sul tuo server web e nel database ci metti solo il nome del file.
Tecnicamente è meglio, anche perché in questo modo il DB rimane di dimensioni più contenute (molti provider forniscono DB con una limitazione in Megabytes...)
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Oppure puoi semplificare il database.
Metti le immagini in una cartella sul tuo server web e nel database ci metti solo il nome del file.
Tecnicamente è meglio, anche perché in questo modo il DB rimane di dimensioni più contenute (molti provider forniscono DB con una limitazione in Megabytes...)

La cosa dopo diventa troppo difficile da gestire perchè devo ricordarmi il nome del file associato a quel record
 

LucaMs

Expert
Licensed User
Longtime User
Penso che per leggere il file binario tu debba usare RAF (Random Access File)
 
Top