As you could see either the name and the path of the sample data are not display at all in the DBGrid.
Is the blob field which mesh up with the entire code or i have made some else some error?
Yes, it is the blob field that gets things messed up: Blob fields are binary fields and the programmer is responsible for making it visible in the correct manner.
Correct for real BLOB-fields.
But if you looked at the screenshots in the OP you could have seen that the "name" and "path" fields were (MEMO)-fields (TEXT). Only the "image" field is a real (BLOB)-field (BLOB).
They are very different. Like I already said... TEXT maps to TMemoField which causes the confusion because a TMemoField shows the (MEMO).
But it is still a string and not just a binary field. So the problem for "name" and "path" is caused by the TEXT-fields which are normally used for strings !!. (and yes, I know a TEXT-field in SQLite can also store binary data but that's just the relaxed typing-system of SQLite. Normally you wouldn't define a TEXT for binary, you would use BLOB.)
See:
https://www.sqlite.org/datatype3.html#section_3@sabouras, the easiest solution would be that you change the field-type of "name" and "path" to VARCHAR. In that case SQLite will still store the string but FPC/Lazarus can recognize it is a string and use TStringField (which will show correctly in a DBGrid). Only when you are going to use a larger TMemo (for complete multiline description) using TEXT is useful.
Although VARCHAR is not an internal SQLite Affinity, it will map to the TEXT Affinity, but still use the VARCHAR to communicate with the program (which is why the program can show the TStringField). See
https://www.sqlite.org/datatype3.html#section_3_2