@@ -25,7 +25,7 @@ By default, *sql.js* uses [wasm](https://developer.mozilla.org/en-US/docs/WebAss
25
25
``` javascript
26
26
const initSqlJs = require (' sql.js' );
27
27
// or if you are in a browser:
28
- // var initSqlJs = window.initSqlJs;
28
+ // const initSqlJs = window.initSqlJs;
29
29
30
30
const SQL = await initSqlJs ({
31
31
// Required to load the wasm binary asynchronously. Of course, you can host it wherever you want
@@ -34,15 +34,15 @@ const SQL = await initSqlJs({
34
34
});
35
35
36
36
// Create a database
37
- var db = new SQL.Database ();
37
+ const db = new SQL.Database ();
38
38
// NOTE: You can also use new SQL.Database(data) where
39
39
// data is an Uint8Array representing an SQLite database file
40
40
41
41
// Prepare an sql statement
42
- var stmt = db .prepare (" SELECT * FROM hello WHERE a=:aval AND b=:bval" );
42
+ const stmt = db .prepare (" SELECT * FROM hello WHERE a=:aval AND b=:bval" );
43
43
44
44
// Bind values to the parameters and fetch the results of the query
45
- var result = stmt .getAsObject ({' :aval' : 1 , ' :bval' : ' world' });
45
+ const result = stmt .getAsObject ({' :aval' : 1 , ' :bval' : ' world' });
46
46
console .log (result); // Will print {a:1, b:'world'}
47
47
48
48
// Bind other values
@@ -54,12 +54,12 @@ stmt.free();
54
54
// But not freeing your statements causes memory leaks. You don't want that.
55
55
56
56
// Execute a single SQL string that contains multiple statements
57
- sqlstr = " CREATE TABLE hello (a int, b char);" ;
57
+ let sqlstr = " CREATE TABLE hello (a int, b char);" ;
58
58
sqlstr += " INSERT INTO hello VALUES (0, 'hello');"
59
59
sqlstr += " INSERT INTO hello VALUES (1, 'world');"
60
60
db .run (sqlstr); // Run the query without returning anything
61
61
62
- var res = db .exec (" SELECT * FROM hello" );
62
+ const res = db .exec (" SELECT * FROM hello" );
63
63
/*
64
64
[
65
65
{columns:['a','b'], values:[[0,'hello'],[1,'world']]}
@@ -75,7 +75,7 @@ db.create_function("add_js", add);
75
75
db .run (" INSERT INTO hello VALUES (add_js(7, 3), add_js('Hello ', 'world'));" ); // Inserts 10 and 'Hello world'
76
76
77
77
// Export the database to an Uint8Array containing the SQLite database file
78
- var binaryArray = db .export ();
78
+ const binaryArray = db .export ();
79
79
```
80
80
81
81
## Demo
@@ -97,20 +97,20 @@ The test files provide up to date example of the use of the api.
97
97
// We must specify this locateFile function if we are loading a wasm file from anywhere other than the current html page's folder.
98
98
initSqlJs (config).then (function (SQL ){
99
99
// Create the database
100
- var db = new SQL.Database ();
100
+ const db = new SQL.Database ();
101
101
// Run a query without reading the results
102
102
db .run (" CREATE TABLE test (col1, col2);" );
103
103
// Insert two rows: (1,111) and (2,222)
104
104
db .run (" INSERT INTO test VALUES (?,?), (?,?)" , [1 ,111 ,2 ,222 ]);
105
105
106
106
// Prepare a statement
107
- var stmt = db .prepare (" SELECT * FROM test WHERE col1 BETWEEN $start AND $end" );
107
+ const stmt = db .prepare (" SELECT * FROM test WHERE col1 BETWEEN $start AND $end" );
108
108
stmt .getAsObject ({$start: 1 , $end: 1 }); // {col1:1, col2:111}
109
109
110
110
// Bind new values
111
111
stmt .bind ({$start: 1 , $end: 2 });
112
112
while (stmt .step ()) { //
113
- var row = stmt .getAsObject ();
113
+ const row = stmt .getAsObject ();
114
114
console .log (' Here is a row: ' + JSON .stringify (row));
115
115
}
116
116
});
@@ -126,10 +126,10 @@ The test files provide up to date example of the use of the api.
126
126
The following code uses an HTML input as the source for loading a database:
127
127
``` javascript
128
128
dbFileElm .onchange = () => {
129
- var f = dbFileElm .files [0 ];
130
- var r = new FileReader ();
129
+ const f = dbFileElm .files [0 ];
130
+ const r = new FileReader ();
131
131
r .onload = function () {
132
- var Uints = new Uint8Array (r .result );
132
+ const Uints = new Uint8Array (r .result );
133
133
db = new SQL.Database (Uints);
134
134
}
135
135
r .readAsArrayBuffer (f);
@@ -153,15 +153,15 @@ const db = new SQL.Database(new Uint8Array(buf));
153
153
##### using XMLHttpRequest
154
154
155
155
``` javascript
156
- var xhr = new XMLHttpRequest ();
156
+ const xhr = new XMLHttpRequest ();
157
157
// For example: https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite
158
158
xhr .open (' GET' , ' /path/to/database.sqlite' , true );
159
159
xhr .responseType = ' arraybuffer' ;
160
160
161
161
xhr .onload = e => {
162
- var uInt8Array = new Uint8Array (xhr .response );
163
- var db = new SQL.Database (uInt8Array);
164
- var contents = db .exec (" SELECT * FROM my_table" );
162
+ const uInt8Array = new Uint8Array (xhr .response );
163
+ const db = new SQL.Database (uInt8Array);
164
+ const contents = db .exec (" SELECT * FROM my_table" );
165
165
// contents is now [{columns:['col1','col2',...], values:[[first row], [second row], ...]}]
166
166
};
167
167
xhr .send ();
@@ -176,24 +176,24 @@ Alternatively, you can simply download `sql-wasm.js` and `sql-wasm.wasm`, from t
176
176
177
177
#### read a database from the disk:
178
178
``` javascript
179
- var fs = require (' fs' );
180
- var initSqlJs = require (' sql-wasm.js' );
181
- var filebuffer = fs .readFileSync (' test.sqlite' );
179
+ const fs = require (' fs' );
180
+ const initSqlJs = require (' sql-wasm.js' );
181
+ const filebuffer = fs .readFileSync (' test.sqlite' );
182
182
183
183
initSqlJs ().then (function (SQL ){
184
184
// Load the db
185
- var db = new SQL.Database (filebuffer);
185
+ const db = new SQL.Database (filebuffer);
186
186
});
187
187
188
188
```
189
189
190
190
#### write a database to the disk
191
191
You need to convert the result of ` db.export ` to a buffer
192
192
``` javascript
193
- var fs = require (" fs" );
193
+ const fs = require (" fs" );
194
194
// [...] (create the database)
195
- var data = db .export ();
196
- var buffer = new Buffer (data);
195
+ const data = db .export ();
196
+ const buffer = new Buffer (data);
197
197
fs .writeFileSync (" filename.sqlite" , buffer);
198
198
```
199
199
@@ -208,7 +208,7 @@ You will need to download `worker.sql-wasm.js` and `worker.sql-wasm.wasm` from t
208
208
Example:
209
209
``` html
210
210
<script >
211
- var worker = new Worker (" /dist/worker.sql-wasm.js" );
211
+ const worker = new Worker (" /dist/worker.sql-wasm.js" );
212
212
worker .onmessage = () => {
213
213
console .log (" Database opened" );
214
214
worker .onmessage = event => {
@@ -246,14 +246,14 @@ So in the past, you would:
246
246
``` html
247
247
<script src =' js/sql.js' ></script >
248
248
<script >
249
- var db = new SQL.Database ();
249
+ const db = new SQL.Database ();
250
250
// ...
251
251
</script >
252
252
```
253
253
or:
254
254
``` javascript
255
- var SQL = require (' sql.js' );
256
- var db = new SQL.Database ();
255
+ const SQL = require (' sql.js' );
256
+ const db = new SQL.Database ();
257
257
// ...
258
258
```
259
259
@@ -262,16 +262,16 @@ Version 1.x:
262
262
<script src =' dist/sql-wasm.js' ></script >
263
263
<script >
264
264
initSqlJs ({ locateFile : filename => ` /dist/${ filename} ` }).then (function (SQL ){
265
- var db = new SQL.Database ();
265
+ const db = new SQL.Database ();
266
266
// ...
267
267
});
268
268
</script >
269
269
```
270
270
or:
271
271
``` javascript
272
- var initSqlJs = require (' sql-wasm.js' );
272
+ const initSqlJs = require (' sql-wasm.js' );
273
273
initSqlJs ().then (function (SQL ){
274
- var db = new SQL.Database ();
274
+ const db = new SQL.Database ();
275
275
// ...
276
276
});
277
277
```
0 commit comments