Files
sqlite3PlayNodeJs/database.js
Joe Tretter 339333625d initial
2018-09-18 11:54:56 -05:00

69 lines
1.8 KiB
JavaScript

const config = require('./config');
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database(config.dbFileName, sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error("ERROR: opening DB failed: ", err.message);
}
console.log('Connected.');
});
let query = (SQL) => {
return new Promise((resolve, reject) => {
// this if assumes only SELECT has a resultset
if (SQL.toUpperCase().startsWith("SELECT")) {
db.all(SQL, [], (err, rows) => {
if (err) {
console.log("A");
reject("ERROR: fetching data: ", err.message);
}
console.log("B", rows);
resolve(rows);
});
} else {
db.run(SQL, (err) => {
if (err) {
reject("ERROR: inserting row: ", err.message);
}
resolve(true);
});
}
});
};
let close = () => {
return new Promise((resolve, reject) => {
db.close((err) => {
if (err) {
reject("ERROR: closing DB: ", err.message);
}
resolve(true);
});
});
}
let main = async () => {
query('insert into log (message) values (\'Outside\')');
let rows = null;
try {
await query('insert into log (message) values (\'start\')');
rows = await query('select * from Option');
rows.forEach((row) => {
console.log(row.ID + "\t" + row.PutCall);
})
await query('insert into log (message) values (\'end\')');
} catch (ex) {
console.error('Error', ex);
}
close();
}
main();
module.exports = {
query,
close
};