The sqlite db is not in a text format suitable for reading with file component.
It is possible to query the entire table then save the result to a csv file for future reading.
The sqlite db is not in a text format suitable for reading with file component.
It is possible to query the entire table then save the result to a csv file for future reading.
Please read my guide again, which I have updated, I found a quirk with the return of list of lists....
I was testing this @TIMAI2 extension and noticed that sometimes (like a daemon) when I deleted the aaaaaa.db file, .db-shm and .db-wal were created, here I found the explanation:
This is just a test application:
Two database paths are established: ASD/peoplesCode.db and ASD/peoplesCode2.db.
It opens, creates, inserts and selects in peoplesCode.db.
Store this file to CloudDB (in Base64 - extension).
Get as peoplesCode2.db (from Base64 - extension).
Open and Select * of peoplesCode2.db
If you want to go back to the peoplesCode.db you must Click in OpenDatabase peoplesCode.db
Borrar_Sqlite.aia (54.8 KB)
How are you deleting the database? This should only be possible using external file management, nothing to do with the extension. But best practice would be to ensure the database is closed and not the "main" database before deleting?
My comment was only because I was unaware of the existence of the .db-wal and .db-shm files.
I have tested it on an Android 9, MIT Comp. and installed.
When I delete the ASD/peoplesCode.db file without closing it, the .db-wal and .db-shm files are created.
I delete it using the File component, File.Delete
Interestingly, if I now close the database and File.Delete: ASD/peoplesCode.db again, the .db-wal and .db-shm are deleted, they are shared memory files.
Hi team
From the documentation
The simplest way is to upload the database into the assets of your app, see also @TIMAI2's guide METRIC RAT AI2 - Working with SQLite
Else use the file component to copy it from shared storage /Download or /Documents to the ASD and import from there
Taifun
Which extension are you using ? (SQLite1) ?
Mmmm... may be OK set column headers to false using a clock started by Screen1.Initialize?
Column Headers Bug now fixed, download latest version 3
Also ListFixer merged to main extension
SimpleSqliteV3
For Android <10 there is a bug (typo ?) that carried over from the original extension
return getExternalStoragePath() + "/AppInventor/data/";
should read
return getExternalStoragePath() + "/AppInventor/assets/";
Should now be fixed
For Android 12, just use //myDatabase.sqlite
, extension is looking for //
for asset files
... the same of course on Android 10+
On Android ≤ 9 a relative path must therefore be set (at least as long as this is not adjusted in the extension).
Hmmm, looks like
is doubling up on /storage/emulated/0
....
Will test some more
Yes, I think (and find on the forum next I post this question) this extension dont work with Android 10. The question is all my code is coded with the SqlLite extension and if I go to use the SimpleSqlite extension I will recode all my app. Really there are no way to "import" a empty (preformated with tables) database to use with sqllite? Any solution welcome. thanks. Ex. move (with the app) the database to a directory that can use the sqlite extension?...
Solved: I have used the method "dbname" of simplesqlite to change the name (and dir) of the db to the name (and dir) of db that expects the extension sqllite before import the database. To import the database I used the method ImportDatabase of simplesqlite extension. thanks.
You could have done exactly the same thing with Taifun's extension. Have you updated to the latest version which works with Android <=10?