[
https://issues.apache.org/jira/browse/CB-309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Bowser updated CB-309:
--------------------------
Fix Version/s: 1.9.0
> Support placeholders in WebSQL storage shim SQL query strings
> -------------------------------------------------------------
>
> Key: CB-309
> URL: https://issues.apache.org/jira/browse/CB-309
> Project: Apache Cordova
> Issue Type: New Feature
> Components: Android, CordovaJS
> Affects Versions: 1.4.0, 1.5.0
> Environment: Android 2.3 emulator
> Reporter: Filip Maj
> Assignee: Joe Bowser
> Priority: Minor
> Fix For: 1.9.0
>
>
> Migrated from an issue that existed on github.com/cordova/cordova-android.
> Probably needs investigation/confirmation still. The placeholder {{?}} tokens
> in SQL query strings, which get properly interpolated into whatever types you
> pass in to the arguments array, when used in our Android polyfill on certain
> Android devices, does not work as expected.
> {code}
> function getAutoCompleteData(response, term){
> var db = window.openDatabase("data", "1.0", "data", 1000000);
> App.term = term;
> db.transaction(autocompleteDB, autocompleteDbError, autocompleteDbSuccess);
> }
> function autocompleteDB(tx) {
> tx.executeSql("SELECT * FROM auto where name like '%?%'",
> [App.term], success,error);
> }
> {code}
> Returns error:
> {code}
> I/System.out(356): Storage.executeSql(): Error=bind or column index out of
> range: handle 0x562508
> {code}
> I checked source code for 1.3.0 and found what it just has no support for
> placeholders.
> ----
> Simon then asked: What version of Android are you using? Most versions of
> PhoneGap/Cordova are using the built in websql functionality.
> ----
> Response: This not depend of Android version. I just checked source code here
> https://github.com/cordova/cordova-android/blob/master/framework/src/com/phonegap/Storage.java
> in function executeSql and found that is uses placeholders only for isDDL
> querys.
> isDDL true only for CREATE, TRUNCATE, DROP, ALTER. My query uses SELECT ;)
> ----
> Simon then asked: What I am saying to you is that code is not executed for
> most versions of Android including 2.1, 2.2, 2.3, 4.0. For some Android
> versions 3.X there is a bug where window.openDatabase() fails so we are
> forced to fall back on the code we wrote in Storage.java. Otherwise we are
> able to take advantage of the built in websql functionality in the WebView.
> So I ask again, what version of Android are you running on?
> ----
> Response: Ok. Android 2.3. Tested in android emulator. If '?' replaced by
> App.term value - everything works as expected.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira