cannot open sqlite database from JavaScript - sqlite

I'm trying to read sqlite database from the JS side which is created/updated by Android Activity or Service.
But when I call window.openDatabase() method the message below is appear on the LogCat, and Query returns 'no such table' error.
physical .db file is there and seems to accessible from within the Java code, but cannot
access from the JavaScript code. Uninstall or Clear data and reinstall the app did no help with this.
I have no clue to solve this error please help & any suggestions are very appreciated.
phonegap sqlite error code=14
I/Database(2138): sqlite returned: error code = 14, msg = cannot open file at line 27205

If you are trying to access the database created by Activity from the Javascript code, the following thread might answer your question:
How do I call window.openDatabase from a webView hosted in an android application?

Here I am assuming that you are working with Phonegap/Cordova android application .
I also faced the same problem , but I found that this problem is arising because Java and JS both are creating DB at different-2 places.So to solve it use this pluginto access DB created by android in Javascript . This plugin access DB from where Java creates it.

Related

Some database fields are not saved in sqlite flutter, how to check in DB?

Some fields are not loading back in flutter app once I save them and load back.
While saving I am able to see the maps, it is correct only.
So, I want to check that load that sqlite db file.
For that, I kept a text field and ran the emulator.
But, when I ran the same on my mobile, it is not showing the db file path.
Can you explain how to get that file from the mobile(Oneplus 8t)?
in android studio you can see the database by going to : view=>tool windows => database inspector

React native doesn't see new table in sqlite

I'm using a sqlite database linked to my react-native app.
I've already done some queries in my app that work fine, so the query method is good.
Now, I've add new table to the database by adding a csv file in it (as I've already done before).
But when I make a call on the new table, the console tells me that there is 'no such table'.
If I put the sql query in my DB manager, the call do works.
Thanks for your help!
I did find the solution.
It is very simple, just create a new emulator and rerun your app. It seems that Android Studio works on a 'copy' of the project so it does not see the modification in the database.

How to preload core data in simulator?

I try to add core data's - with data already loaded - sqlite database to the project. I am running App on simulator, on device I get no problem. The goal to preload fresh launching app with data. In the document folder I have 3 database file:sqlite, sqlite-shm, sqlite-wal. I have chosen to copy to the project only the sqlite file. When I restarting App with preoloaded database, It seems that database is empty. Why? On device there would be only one database file, which would be not corrupted. Database connection was not closed on simulator, or what?
I found here the answer: How to preload data into an iOS app using sqlite files
In oder to get core data to behave in the old way (pre-iOS 7), and generate just the sqlite file, I had to add this argument to the addPersistentStoreWithType:configuration:URL:options:error: method call, in the options parameter. You can find it in AppDelegate.
#{ NSSQLitePragmasOption : #{ #"journal_mode" : #"DELETE" } }

Where the sQLite database file created ,stored in jQuery Mobile Application

In my jQuery Mobile App i have created sQlite Database and all transactions work successfully , and I want to see the DB file, I searched for it in my project directory but I didn't found it? Does phonegap create file for the created sqlite DB? and where is it? how I can pull the DB file in order to see the inserted data?
I have searched over the internet but I didn't found any answer ,please help me .. since I am new in jQuery Mobile.
Thanks in advance.
Most likely your database is being created in android's cache directory. The following stackoverflow followup answer by the original questioner and it's backlink to an earlier answer should be all you need:
Using PhoneGap for Android : Not able to create table in the database

how to use pre-populated database with tidesdk/titanium desktop

I'm in need of some help in developing a desktop application with a pre-populated database. I have tried numerous ways to get this working including those mentioned on both Tidesdk's API here http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.Database.DB and at Titanium Desktops old API here http://developer.appcelerator.com/apidoc/desktop/latest/Titanium.Database-module.
While the later (using Titanium not Ti) works in creating a database in the apps directory it does not install my pre-populated sqlite database which is located in the resources file of my app.
A couple of my attempts located below
var db = Titanium.Database.openFile('test_db.sqlite', 'test_db');
var db = Titanium.Database.openFile(Ti.Filesystem.getFile(
Ti.Filesystem.getApplicationDataDirectory(), 'test_db.sqlite'));
var db = Ti.Database.open('test_db');
As stated most of these manage to create a database with the name given but when trying to run something as simple as a db.execute(SELECT) of something I know would exist in my pre-populated db I receive an error stating
Exception executing: SELECT name, id FROM people ORDER BY name COLLATE NOCASE, Error was: SQL Statement invalid or database missing
I have searched high and low for something to answer this but everyone continues to refer to the aforementioned API's or to the Mobile API's Ti.database.install() which does not work either.
Is it possible with titanium desktop to use a pre-populated sqlite database or do I have to populate it after I create it? If so any direction would be helpful (where to place the .sqlite file in the app and what functions to call).
I am currently using Titanium Studio with a titanium desktop osx SDK of 1.2.0.RC4 as requested by tidesdk.org until they have released there open source sdk.
Thanks in advance
This is possible, I just used this feature in a recent desktop app, deployed it successfully to Windows and Mac.
In my experience, sometimes your database file can be corrupted, for example if you use the Titanium.Database.install command, and it cant find the file to preload from (maybe the first time you specified the path wrong for instance), it will create the file itself, any subsequent install commands will not work because it already thinks this database has been installed.
Have you tried clearing out the application data? This is where titanium installs the database. For Mac this is in your /User/Library/Application Support/APPNAME directory. Their is a directory for databases, delete this and try again.
Also, this answer on Titanium Q&A may help, it talks about the process with the Mobile SDK but the Database stuff is the same.
Hope this helps!

Resources