You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43-12
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Native SQLite component with API based on HTML5/[Web SQL (DRAFT) API](http://www
6
6
- macOS ("osx" platform)
7
7
- Windows 10 (UWP) DESKTOP and MOBILE (see below for major limitations)
8
8
9
-
Browser platform is supported _with some limitations (no support for numbered parameters)_as described in [Browser platform usage notes](#browser-platform-usage-notes) section below.
9
+
Browser platform is currently supported with some limitations as described in [browser platform usage notes](#browser-platform-usage-notes) section below, will be supported with more features such as numbered parameters in upcoming major release for July 2018 (see below).
10
10
11
11
**LICENSE:** MIT, with Apache 2.0 option for Android and Windows platforms (see [LICENSE.md](./LICENSE.md) for details, including third-party components used by this plugin)
12
12
@@ -29,13 +29,6 @@ New release in July 2018 will include the following major enhancements ([litehel
29
29
-~~drop Android NDK build for x86_64 ([litehelpers/Cordova-sqlite-storage#772](https://github.com/litehelpers/Cordova-sqlite-storage/issues/772)); NDK build for x86 will still work on x86_64 if no other plugins have NDK build for x86_64; feedback is requested in case of interest in NDK build for x86_64~~
30
30
- drop support for location: 0-2 values in openDatabase call (please use `location: 'default'` or `iosDatabaseLocation` setting in openDatabase as documented below)
31
31
32
-
## Browser platform usage notes
33
-
34
-
As stated above the browser platform will be supported _(with numbered parameters working_ using [kripken / sql.js](https://github.com/kripken/sql.js) (see [litehelpers/Cordova-sqlite-storage#576](https://github.com/litehelpers/Cordova-sqlite-storage/pull/576)) in the near future. Alternative solutions for now _(with no support for numbered parameters such as `?1`, `?2`, ...)_:
35
-
36
-
- Use [brodybits / sql-promise-helper](https://github.com/brodybits/sql-promise-helper) as described in [brodybits/sql-promise-helper#4](https://github.com/brodybits/sql-promise-helper/issues/4)
37
-
- Mocking on Ionic Native is possible as described in <https://www.techiediaries.com/mocking-native-sqlite-plugin/> and <https://medium.com/@tintin301/ionic-sqlite-storage-setting-up-for-browser-development-and-testing-67c0f17fc7af>
38
-
39
32
## About this plugin version
40
33
41
34
This is the common plugin version which supports the most widely used features and serves as the basis for the other versions.
@@ -142,7 +135,7 @@ or using numbered parameters as documented in <https://www.sqlite.org/c3ref/bind
142
135
});
143
136
```
144
137
145
-
To check the data using the "standard" (deprecated) transaction API:
138
+
To check the data using the DRAFT standard transaction API:
146
139
147
140
```Javascript
148
141
db.transaction(function(tx) {
@@ -154,7 +147,9 @@ To check the data using the "standard" (deprecated) transaction API:
154
147
});
155
148
```
156
149
157
-
### Using recommended API calls
150
+
### Using plugin-specific API calls
151
+
152
+
NOTE: These samples will NOT work alternative 3 for browser platform support discussed in [browser platform usage notes](#browser-platform-usage-notes).
158
153
159
154
To populate a database using the SQL batch API:
160
155
@@ -194,6 +189,8 @@ To check the data using the single SQL statement API:
194
189
});
195
190
```
196
191
192
+
### More detailed sample
193
+
197
194
See the [Sample section](#sample) for a sample with a more detailed explanation (using the DRAFT standard transaction API).
198
195
199
196
<!-- END quick tour -->
@@ -326,6 +323,37 @@ In addition, this guide assumes a basic knowledge of some key JavaScript concept
326
323
327
324
**NOTICE:** This plugin is only supported with the Cordova CLI. This plugin is *not* supported with other Cordova/PhoneGap systems such as PhoneGap CLI, PhoneGap Build, Plugman, Intel XDK, Webstorm, etc.
328
325
326
+
## Browser platform usage notes
327
+
328
+
As stated above the browser platform will supported with features such as numbered parameters using [kripken / sql.js](https://github.com/kripken/sql.js) (see [litehelpers/Cordova-sqlite-storage#576](https://github.com/litehelpers/Cordova-sqlite-storage/pull/576)) in the near future. Alternative solutions for now, with features such as numbered paramters (`?1`, `?2`, etc.) missing:
329
+
330
+
1. Use [brodybits / sql-promise-helper](https://github.com/brodybits/sql-promise-helper) as described in [brodybits/sql-promise-helper#4](https://github.com/brodybits/sql-promise-helper/issues/4)
331
+
2. Mocking on Ionic Native is possible as described in <https://www.techiediaries.com/mocking-native-sqlite-plugin/> and <https://medium.com/@tintin301/ionic-sqlite-storage-setting-up-for-browser-development-and-testing-67c0f17fc7af>
332
+
3. Open the database as follows:
333
+
334
+
```js
335
+
if (window.cordova.platformId==='browser') db =window.openDatabase('MyDatabase', '1.0', 'Data', 2*1024*1024);
336
+
else db =window.sqlitePlugin.openDatabase({name:'MyDatabase.db', location:'default'});
(lower limit needed to avoid extra permission request popup on Safari)
348
+
349
+
and limit database access to DRAFT standard transactions, no plugin-specific API calls:
350
+
- no `executeSql` calls outside DRAFT standard transactions
351
+
- no `sqlBatch` calls
352
+
- no `echoTest` or `selfTest` possible
353
+
- no `deleteDatabase` calls
354
+
355
+
It would be ideal for the application code to abstract the openDatabase part away from the rest of the database access code.
356
+
329
357
### Windows platform notes
330
358
331
359
The Windows platform can present a number of challenges which increase when using this plugin. The following tips are recommended for getting started with Windows:
@@ -617,7 +645,7 @@ Additional limitations are tracked in [marked Cordova-sqlite-storage doc-todo is
617
645
618
646
## Some tips and tricks
619
647
620
-
-If you run into problems and your code follows the asynchronous HTML5/[Web SQL](http://www.w3.org/TR/webdatabase/) transaction API, you can try opening a test database using `window.openDatabase`and see if you get the same problems.
648
+
-In case of issues with code that follows the asynchronous Web SQL transaction API, it is possible to test with a test database using `window.openDatabase`for comparison with (WebKit) Web SQL.
621
649
- In case your database schema may change, it is recommended to keep a table with one row and one column to keep track of your own schema version number. It is possible to add it later. The recommended schema update procedure is described below.
622
650
623
651
<!-- END Some tips and tricks -->
@@ -688,7 +716,6 @@ FUTURE TBD: Proper date/time handling will be further tested and documented at s
688
716
## Major TODOs
689
717
690
718
- More formal documentation of API, especially for non-standard functions
691
-
- Browser platform
692
719
- IndexedDBShim adapter (possibly based on IndexedDBShim)
693
720
- Further cleanup of [support](#support) section
694
721
- Resolve or document remaining [open Cordova-sqlite-storage bugs](https://github.com/litehelpers/Cordova-sqlite-storage/issues?q=is%3Aissue+is%3Aopen+label%3Abug-general)
@@ -954,6 +981,8 @@ The following types of SQL transactions are supported by this plugin version:
954
981
955
982
### Single-statement transactions
956
983
984
+
NOTE: This call will NOT work alternative 3 for browser platform support discussed in [browser platform usage notes](#browser-platform-usage-notes).
985
+
957
986
Sample with INSERT:
958
987
959
988
```Javascript
@@ -1001,6 +1030,8 @@ db.executeSql("SELECT UPPER('First') AS uppertext", [], function (resultSet) {
1001
1030
1002
1031
### SQL batch transactions
1003
1032
1033
+
NOTE: This call will NOT work alternative 3 for browser platform support discussed in [browser platform usage notes](#browser-platform-usage-notes).
0 commit comments