[
https://issues.apache.org/jira/browse/CB-4506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Bowser resolved CB-4506.
----------------------------
Resolution: Fixed
Fixed with org.apache.cordova.websql plugin.
> Storage plugin does not handle data type properly
> -------------------------------------------------
>
> Key: CB-4506
> URL: https://issues.apache.org/jira/browse/CB-4506
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 2.9.0
> Environment: Android 2.3.x, 3.x, 4.x on emulator
> Android 4.x on physical device
> Reporter: Shingo Toda
> Assignee: Joe Bowser
> Priority: Minor
>
> I'm using Cordova 2.9.0.
> In my understanding, when window.openDatabase() is called, if SECURITY_ERR is
> returned then Storage plugin is used, otherwise browser's WebSQL is used.
> Actually my mobile phone doesn't support WebSQL so Storage plugin is
> selected, but it seems that all of fetched data from database is converted
> into String even if it is other data type such as INTEGER, FLOAT.
> The following line in Storage#processResults() converts all data into String.
> All column value is collected by Cursor#getString().
> {code:title=Storage#processResult()}
> String key = "";
> String value = "";
> // Build up JSON result object for each row
> do {
> JSONObject row = new JSONObject();
> try {
> for (int i = 0; i < colCount; ++i) {
> key = cur.getColumnName(i);
> value = cur.getString(i);
> row.put(key, value);
> }
> fullresult.put(row);
> } catch (JSONException e) {
> e.printStackTrace();
> }
> } while (cur.moveToNext());
> {code}
> Since type check methods are provided such as Cursor#getType() (>=HoneyComb)
> or AbstractWindowedCursor#isLong/String/Float() (<HoneyComb), why don't you
> use these method to switch proper get method? (isXXX() methods are deprecated
> from HoneyComb but they still work on Gingerbread!)
--
This message was sent by Atlassian JIRA
(v6.1#6144)