Retrieve data from csv very slow and time consuming

ABG thank you for your app "ultimate extension-free TinyDB retentive version".
I have tested it and in first run the time to wait is about 90s
I will probably use the solution of TIMAI2 with SQlite.

For what concern the IOS...I know that apps that use extensions can not be exported to be used in IOS...is it true?
My app uses a lot of extensions: have you a solution?

thank you!

Dear TIMAI2, cities list for each country is usually long. For this reason I used a textbox in witch user have to enter first letter of city to search, and I introduced a "compare text" to filter (se attached screenshot in first message). Will same blocks work in your SQlite blocks sequence?

In my app I have functions that need a shared database, so I used TinyWEBDB.
Is TinyWEBDB (as TinyDB) slower than SQlite?

If you suggest to substitute TinyWEBDB with SQlite, how to create the web version of SQlite? Is it the same of local one?
And how to upload it in Google App Engine server?

No, your path is clear.

Sorry ABG, I have not well understood your reply.. sorry. Could you better explain what you mean please?

As suggested, use list pickers instead of spinners, these offer a search/filter bar, alternately you can use a text box and some blocks to filter.

Not sure why you would use a tinywebdb for anything in relation to this.

@ABG means you are ok to carry on if you are not targeting iOS.

The reason I would use tinyweb is that I have an impressive Tinyweb block in my app..
substitution with SQlite = a great work

That said, what about this?

Any solution for IOS compatibility for apps with extensions?

It is currently not possible to use extensions if targeting ios.

but probably easier to use mySQL or even Google Sheets.

Is in your opinion Google sheet faster than tinyweb db?
Using gsheet as database is a possibility...

Firebase is faster...

Here is a version that uses google sheets, all the hard work is done at the server end, so just the time taken to return the results.

GSheetCountriesCities.aia (27.0 KB)

You must ensure that all your sheet data is formatted to "Plain Text" for the gviz query to work.

Countries
image

Cities

TIMAI2 very thank you for time you spent for my question.
I have compared your apps (SQlitebased for local and Googlesheets for web) and probably SQlite is faster.
That said, I think that both apps are great!!!

My only question is whether it's a good idea to use Google Sheets for other web features of my app (no countries/cities) where I have sensitive user data.
I've read the limits of Google Sheets (300 read/write requests per minute, 10 million cells, 50,000 characters per cell).
If I'm within the limits and encrypt both the JSON credentials and the Spreadsheet ID, my questions are:

  • From a data loss point of view, Can I trust Google Sheets?
  • Is there a chance that malicious people could access my Google Sheets and steal sensitive data?
  • Is TinywebDB slower than Google Sheets?

That is a $64000 question. Millions of users do. Depends what you mean by data loss? (see below)

Nothing is unhackable. Data transfer between AI2 and Google Sheets will be encrypted by https.

Don't use tinywebdb for production

I have read that when many users are using Google sheets for retrieve/write data, overwriting or errors in savind data are possible. It could be?

Sorry. I mean "CUSTOM" TinyWebDB. Is your opinion the same also for "custom" TinyWebDB? What are disadvantages respect GoogleSheets?

The same could be said for just about any other online/offline storage solution.

There are industry strength key:value storage solutions, why muck about with something that isn't.

I started with TinyWEBDB because it seemed like a good solution.

  • It's integrated into AppInventor and requires no programming effort (I'm not an expert).
  • There's a lot of documentation on how to use it.
  • There's good documentation explaining how to create a custom TinyWEBDB that runs in Google App Engine.
  • It's free.

If there are industry strength key: value storage solutions that have the same features, I'd love to know what they are.
Could you help me?

Firebase

AI2 Firebase Component (experimental...)

Firebase with the Web Component

Thank you for this. I will try for web needs.

For what regards my first question about local database, I think I will use SQLite, it is very fast. I have slight modified your app (after a fast read of the commands I need) and introduced a filter textbox to filter cities with first letter (see image).
Thank you very much to all!

@TIMAI2 I was reading your page related to SimpleSQLite and I have a couple of questions.

Here you say that we need to set a Different Database as Default.
Why in your app sqliteCountriesCities you have not done it?

How this blocks work? Is it an alternative way to set a Different Database as Default?

Why in your page you use .db extension, and in sqliteCountriesCities .sqlite?

How can I create by me the file cc.sqlite you shared here?

Many tanks TIMAI2!!!

Just saying that you "can" set a different database as Default, you do not have to.

In my example I simply imported the database to the current default database.

The Screen.Initialise event blocks test if the database has been imported (returns true if successful, false if it fails), then if true opens the database for "work"

db or sqlite are two of many different filename extensions used for sqlite databases.

I used a program called DB Browser for SQLite to import your csv files as tables. I use Linux but I believe there is a Windows version as well. Or just use the one I created.