[Delphi] Inserire immagine in un campo di tipo BLOB di un DB.

Una vacanza ogni tanto non fa certamente male… Oggi utilizziamo una procedura in modo da poter inserire un’immagine in un campo di tipo blob di un database Microsoft Access.

Creiamo il nostro database contenente una tabella con un campo id di tipo contatore ed uno immagine di tipo Oggetto OLE.

A questo punto avviamo Delphi, creiamo una nuova applicazione Win 32 che contiene un Data Module (DataModule1) ed una Form (Form1), andiamo sul DataModule1 e creiamo la connessione al database utilizzando una ADOConnection (Connessione), ADOTable (Tabella1) e DataSource (DSTabella1); settiamo i parametri per collegare i componenti su indicati al nostro database, successivamente, una volta attivati i parametri di connessione, facciamo doppio click sul componente ADOTable, apparirà una finestra, clicchiamo col tasto destro e selezioniamo la voce aggiungi tutti i campi, a questo punto appariranno i campi id ed immagine; torniamo sulla form principale ed inseriamo un componente di tipo OpenDiaolog, utilizzando l’Object Inspector settiamo i campi relativi al filtro in base all’estenzione del file, rinominiamo il componente in ImportaImmagine. Sempre sulla form inseriamo due pulsanti ed un componente DBImage.

Selezioniamo il pulsante Button1 e rinominiamolo in btnIserisciImmagine, facciamo doppio click ed inseriamo il seguente codice:
procedure TForm1.btnInserisciImmagineClick(Sender: TObject);
Var
   ImgPeg : TjpegImage ;
begin
 If ImportaImmagine.Execute then
  begin
    DataModule1.Tabella1.Edit;
    DataModule1.Tabella1.Insert;
    If UpperCase(ExtractFileExt(ImportaImmagine.FileName)) = ‘.BMP’ then
     begin
         DataModule1.Tabella1immagine.LoadFromFile(ImportaImmagine.FileName);
     end
else
begin

      ImgPeg := TjpegImage.Create ;
      ImgPeg.LoadFromFile(ImportaImmagine.FileName) ;
      Clipboard.Assign(ImgPeg) ;
      ImgPeg.Free ;
     end;
end;
end;

Selezioniamo il secondo pulsante e rinominiamolo in btnAggiorna, facciamo doppio click sul pulsante ed inseriamo il codice per aggiornare i dati ed inserire un nuovo record, esempio:
procedure TForm1.btnAggiornaClick(Sender: TObject);
begin
  DataModule1.Tabella1.Post;
  DataModule1.Tabella1.Insert;
end;

Per poter scorrere le immagini contenute nei record della nostra tabella possiamo inserire un componente DBNavigator e collegarlo al componente ADOTable oppure possiamo inserire altri due pulsanti, rinominiamoli in btnSuccessivo e btnPrecedente. In quest’ultimo caso però dovremmo definire le due procedure per poter scorrere i record, quindi facciamo doppio click sul pulsante btnSuccessivo e digitiamo il codice:
procedure TForm1.btnSuccessivoClick(Sender: TObject);
begin
  DataModule1.Tabella1.Next;
end;

Adesso selezioniamo il pulsante btnPrecedente, facciamo doppio click ed inseriamo:
procedure TForm1.btnPrecedenteClick(Sender: TObject);
begin
  DataModule1.Tabella1.Prior;
end;

Compiliamo e testiamo la nostra applicazione.
Ciao ed alla prossima.
Filippo

I commenti sono chiusi.