Insert BLOB data into SQLite database field using Matlab and SQL query. Any idea?

16 views (last 30 days)
I need to store binary data in single database field (DB is SQLite, it's important!). Binary data is a some one-dimensional array.One of the best way to do that is BLOB data insertion. As far as I know Matlab doesn't consist methods for BLOB data processing. How can I do that using Matlab environment? Maybe using raw SQL query?

Answers (1)

Gareth Thomas
Gareth Thomas on 22 Jul 2017
Say you have a MAT file, (which is binary) and you want to store that in the sqlite blob... one way to do this is:
% Read your mat as a binary
f = fopen('yourMATfile.mat');
k = fread(f);
fclose(f);
% convert k into char with
ablob = [char(k)];
% Connect to slite
conn = sqlite('YourtestDB.db');
% Insert ablob where ablob is your corresponding field
insert(conn,'TESTRESULTS',columnames, data);
% close sqlite
close(conn)
clear conn
% to Retrieve the data, do the fetch then simply do the inverse: Double, write to mat, and load it
  2 Comments
Seyed Mostafa Mousavi Kahaki
Thanks Gareth, would you please add the retrieve code to your answer. is there another way to insert the image without converting it to a char? for example in uint8 or 16 format
MASSIMO D'ANNA
MASSIMO D'ANNA on 15 Sep 2023
Sorry if I answer to a such old thread, but it's exactly what I'm looking for. I just need help with writing the correct syntax for the Insert command. I have not much experience with matlab & sqlite, so I don't know how to correctly write the command to insert the converted blob inside my database.

Sign in to comment.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!