[ 
https://issues.apache.org/jira/browse/CB-2639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13597373#comment-13597373
 ] 

Nolan Lawson commented on CB-2639:
----------------------------------

Hey [~bowserj], some quick questions about this:

So if Android 4.x uses Cordova's implementation, any idea why it would fail on 
4.0.4?  Also, would it be possible to simply use the Cordova implementation 
everywhere, assuming the native implementation on older Android devices is just 
hopelessly broken?

Also, if WebSQL is being deprecated, is the future-proof recommended solution 
to just use a native SQLite plugin ([such as this 
one|https://github.com/davibe/Phonegap-SQLitePlugin])?
                
> SQLite error: 23 "not authorized" on Android
> --------------------------------------------
>
>                 Key: CB-2639
>                 URL: https://issues.apache.org/jira/browse/CB-2639
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.2.0
>         Environment: Several Android devices, apparently pre-4.1.  See 
> details below.
>            Reporter: Nolan Lawson
>            Assignee: Joe Bowser
>
> (Moved from a comment I mistakenly added to CB-592.)
> I am unable to insert/update to the SQLite database using the standard 
> {{window.openDatabase()}} approach described in the [Storage 
> docs|http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html].  
> The transaction fails with the error "23: not authorized".
> I'm using PhoneGap Build and PhoneGap v.2.2.0.
> All I do is create a database:
> {code:JavaScript}
> var db = window.openDatabase('myDatabase', '1.0', "My Database", 1000000);
> {code}
> Then I call a simple chain of two queries on it:
> {code:JavaScript}
> function query(tx) {
>     tx.executeSql('select 1 from sqlite_master');
> }
> function onError() {
>     ....
> }
> function onSuccess() {
>     db.transaction(query2, onError2, onSuccess2);
> }
> function query2(tx) {
>     tx.executeSql('create table mytable(mycolumn text)');
> }
> function onError2() {
>     ....
> }
> function onSuccess2() {
>     ....
> }
> db.transaction(query, onError, onSuccess);
> {code}
> The table below shows the Android devices that I tested this on, and the 
> failure I got in each.
> ||Device||Android||Working?||Result||Logcat|| SQLError object||
> |Galaxy Nexus|4.1.1|{color:green}Yes{color}|Logs an error, but still works.| 
> {{SQLiteLog  E  (23) not authorized}}||
> |Nexus One|2.3.7|{color:red}No{color}|Calls the {{onError2}} message 
> above.|{{Database  I  sqlite returned: error code = 23, msg = not 
> authorized}}|{code:JavaScript} {"message":"not authorized","code":1} {code}|
> |HTC Magic|2.1-update1|{color:red}No{color}|Calls the {{onError2}} message 
> above.|None|{code:JavaScript} {"code":1,"message":"not authorized"} {code}|
> |Galaxy Tab 8.9|4.0.4|{color:red}No{color}|Calls the {{onError2}} message 
> above.|{{SqliteDatabaseCpp  I  sqlite returned: error code = 23, msg = not 
> authorized, db=xxx}}|{code:JavaScript} {"code":5,"message":"not authorized"} 
> {code}|
> |Samsung GT-I9001|2.3.6|{color:red}No{color}|Calls the {{onError2}} message 
> above.|None|{code:JavaScript} {"message":"not authorized","code":1} {code}|
> I've also tested on an iPod Touch (5th generation) with no issues.
> Based on the comments in CB-592, it seems like the problem is caused by 
> Android's native Web SQL Database implementation.  Apparently they've 
> supported it going back to 2.1 ([link|http://caniuse.com/sql-storage]), and 
> the [Cordova 
> docs|http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html] say 
> they defer to the native interface if it's available, meaning that it has 
> nothing to do with Cordova's implementation.
> I'm really hoping there's a workaround for this, since otherwise I'm unable 
> to use SQLite on Android using Cordova.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to