capacitor-community / capacitor-community/sqlite

bug: Select * returns {"changes":{"changes":0}}

Open
#610 3 comments 0 reactions 0 assignees View on GitHub
bug/fix needs: triage
Dominant language
Swift
Stars
661
Forks
158
PR merge metrics
No merged PRs in 30d

Description

**Plugin version:**

@capacitor-community/sqlite: ^6.0.2

**Platform(s):**

iOS

**Current behavior:**

Using Vue2 with capacitor and @capacitor-community/sqlite I can create a sqlite db, connect to it and insert data to it, receiving a
{"changes":{"changes":1}} log that my row inserted, by following examples and documentation - thank you.

When I try to select * to retrieve the row it returns {"changes":{"changes":0}} though. Can you please explain what I'm doing wrong? I've even resorted to putting the select statement into a 9000ms timeout which runs after the insert statement finishes (using await)....

**Expected behavior:**

**Steps to reproduce:**

const platform = Capacitor.getPlatform();
const sqlite = new SQLiteConnection(CapacitorSQLite);
const ret = await sqlite.checkConnectionsConsistency();
const isConn = (await sqlite.isConnection("st")).result;
let db;
if (ret.result && isConn) {
db = await sqlite.retrieveConnection("st");
} else {
db = await sqlite.createConnection(
"st",
false,
"no-encryption",
1
);
}
await db.open();
const queries = `
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
price TEXT
);
`;
const res = await db.execute(queries);
if (res.changes && res.changes.changes && res.changes.changes < 0) {
throw new Error(`Error: execute failed`);
} else {
console.log('Executed Create if not Exist queries');
}
const queries2 = `
INSERT INTO products (name, price) VALUES ('TestRocket', '$1.23');
`;
await db.execute(queries2).then(async function(res2){
if (res2.changes && res2.changes.changes && res2.changes.changes < 0) {
throw new Error(`Error: execute failed`);
} else {
var str3 = JSON.stringify(res2);
console.log('Executed Insert query: ' + str3);
console.dir(res2);
}

var that = this;
this.timeout = setTimeout(async function(){
const queries4 = `
SELECT * FROM products;
`;

const res4 = await db.execute(queries4);
if (res4.changes && res4.changes.changes && res4.changes.changes < 0) {
throw new Error(`Error: execute failed`);
} else {
var str4 = JSON.stringify(res4);
console.log('Executed Select query: ' + str4);
console.dir(res4);
}
}, 9000)

});

**Related code:**

```
insert short code snippets here
```

**Other information:**

**Capacitor doctor:**

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 6.2.0
@capacitor/core: 6.2.0
@capacitor/android: 6.2.0
@capacitor/ios: 6.2.0

Installed Dependencies:

@capacitor/cli: 6.2.0
@capacitor/core: 6.2.0
@capacitor/android: 6.2.0
@capacitor/ios: 6.2.0

[success] iOS looking great! 👌
[success] Android looking great! 👌

```
insert the output from `npx cap doctor` here
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.