Hi, to you and your cute daughter.
It's strange, but with TSQLite3DataSet, your memo field is read as ftStringType, and its size is set to 255.
You can check this with...
1) In the database name of SQLite3DSetCntries, simply type CNTRIESDB.sqlite3, not "c:\users\..." unless the path is correct.
2) At the edit mode of Lazarus (without pressing F9), click "Active" checkbox of the object inspector of SQLite3DSetCntries.
3) If successful (if you can see the 255 characters in the DBMemoNotes), then you'll see "3 items" in the FieldDefs property at the object inspector of SQLite3DSetCntries.
4) And in the tree structured diagram at the upper part of the object inspector, you'll find "FieldDefs" under "SQLite3DSetCntries". You'll see NOTES node there. If you can't see it, click the "..." button next to the "3 items" of FieldDefs property.
5) If you click "NOTES" node, you'll see that DataType is ftString, and Size is set to 255.
6) Even though you change the size there, it has no effect. If you set the dataset inactive and then active again, the size will restore 255.
The quick solution: DO NOT USE TSQLite3DataSet

1) I added SQLite3Connection, TSQLTransaction, and TSQLQuery to your program. Select Cntriesdb.sqlite3 as SQLite3connection's database. Set transaction and sqlquery's database to sqlite3connection1.
2) I set the DataSet of DSCntries to SQLQuery1.
3) In the SQL property of SQLQuery1, typed in "SELECT * FROM COUNTRIESDB"
4) Click sqlquery1's active to true. Then you'll see the whole content in the memo field.
In the FieldDefs of TSQLQuery, the NOTES field is still ftString type and its size is 255 but the whole content is displayed.
I may attach my program here, but I believe you can do that without it. If you have any difficulty then reply again.
Other notes:
followings are unnecessary, if you dropped components from component pallette.
procedure TFrmCntriesMgt.BitBtnCloseClick(Sender: TObject);
begin
try
SQLite3DSetCntries.Close;
finally
SQLite3DSetCntries.Free;
end;
FrmCntriesMgt.Close;
//FrmCntriesMgt.Free;
end;
In the long term, you'll have to move to SQLQueries. But if the final purpose of any application is managing small sized, limited number of tables, then TSQLite3DataSet may be sufficient. It's not the issue of "sollen" nor "sein". Simply issue of convenience.
And this is a good example of SQL "select * from tablename" equals opening a whole table.
Other note: I think it's not a good idea to use the name cntriesdb to both sqlite3 database file and a table. You had better distinguish table and db.