SCANNER WORKS!!! JUST ADD THE MORE CLUE BUTTONS !!! AND NEXT CLUE ERROR CHECKING

This commit is contained in:
bobbert committed 2025-03-17 12:41:17 +00:00
1 parent 07099ba6b4
commit 02a0088d28
11 files changed
+861 -217

No files matched your search

+29 -11
View File
@@ -1,5 +1,6 @@
import sqlite3 from "sqlite3";
// Create a singleton database connection
let db = null;
export function getDb() {
@@ -15,11 +16,12 @@ export function getDb() {
return db;
}
// Execute a query that returns a single row
export function queryOne(sql, params = []) {
return new Promise((resolve, reject) => {
const db = getDb();
if (!db) {
reject(new Error("Database connection not available"));
reject(Error("Database connection not available"));
return;
}
@@ -31,17 +33,17 @@ export function queryOne(sql, params = []) {
reject(err);
return;
}
resolve(row);
});
});
}
// Execute a query that returns multiple rows
export function query(sql, params = []) {
return new Promise((resolve, reject) => {
const db = getDb();
if (!db) {
reject(new Error("Database connection not available"));
reject(Error("Database connection not available"));
return;
}
@@ -53,23 +55,23 @@ export function query(sql, params = []) {
reject(err);
return;
}
resolve(rows || []);
});
});
}
// Execute a query that doesn't return results (INSERT, UPDATE, DELETE)
export function run(sql, params = []) {
return new Promise((resolve, reject) => {
const db = getDb();
if (!db) {
const error = new Error("Database connection not available");
const error = Error("Database connection not available");
console.error(error);
reject(error);
return;
}
// Add better logging
// Log transaction operations for debugging
if (
sql.toLowerCase().includes("begin") ||
sql.toLowerCase().includes("commit") ||
@@ -86,15 +88,31 @@ export function run(sql, params = []) {
reject(err);
return;
}
resolve({
lastID: this.lastID,
changes: this.changes,
});
resolve({ lastID: this.lastID, changes: this.changes });
});
});
}
// Close database connection - useful for tests and clean shutdown
export function closeDb() {
return new Promise((resolve, reject) => {
if (db) {
db.close((err) => {
if (err) {
console.error("Error closing database:", err.message);
reject(err);
} else {
console.log("Database connection closed");
db = null;
resolve();
}
});
} else {
resolve();
}
});
}
// New function to explicitly enable foreign keys
export function enableForeignKeys() {
return run("PRAGMA foreign_keys = ON;")