HarmonyOS 鸿蒙Next 关系型数据库executeSync,如何得知执行sql语句的成功或者失败

发布于 1周前 作者 sinazl 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 关系型数据库executeSync,如何得知执行sql语句的成功或者失败

1.如题,我调用同步执行sql语句的方法,如何得知sql执行的成功或者失败?目前执行建表操作,调用了executeSync方法后,返回了null,发现建表失败,但是不知道因为什么原因造成的失败,以下是建表的函数

createForm(): void {
let createSqlStr: string = “”;
createSqlStr += “CREATE TABLE IF NOT EXISTS user (”;
createSqlStr += "key TEXT NOT NULL PRIMARY KEY, ";
createSqlStr += “value TEXT NOT NULL)”
console.log(createSqlStr);
const res: boolean | undefined = this.database?.executeSqlWithoutQuery(createSqlStr);
if (res) {
console.log(“创建表成功”);
} else {
console.log(“创建表失败”);
}
}
executeSqlWithoutQuery(sqlStr: string): boolean {
if (this.rdbStore) {
const res: relationalStore.ValueType = this.rdbStore.executeSync(sqlStr);
if (res) {
console.log("执行自定义增删改 sql 语句成功,结果为 ", res);
return true;
} else {
console.log(“执行自定义增删改 sql 语句失败,原因是执行结果为空”);
return false;
}
} else {
console.log(“执行自定义增删改 sql 语句失败,原因是未获取到数据库对象”);
return false;
}
}

以上逻辑是启动时候,执行了一次 getRdbStore方法,获取到数据库对象后存在了一个class对象中,等到用户登录成功后,便执行 createForm 建表操作,发现一直建表失败,但是不知道从哪里看失败原因,rdbStore.executeSync 方法一直返回null

2.从 Device Files Browser 处,利用数据库 GUI 查看数据库发现数据更新很慢,执行完语句后需要等一段时间才能看到数据库更新,这个如何能快速查看到结果呢?


更多关于HarmonyOS 鸿蒙Next 关系型数据库executeSync,如何得知执行sql语句的成功或者失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

1、用你上面的代码,执行建表语句后,查看数据库中表是创建成功的。执行是否成功可以通过try..catch语句,若未捕获到error则执行成功,错误码参考executeSync方法。executeSync方法返回值类型为ValueType,返回结果类型由执行具体sql的结果决定,表操作(建表、删表、修改表)执行返回null。

try {
    let data = (store as relationalStore.RdbStore).executeSync(sqlStr)
    console.info(`check result: ${data}`);
  } catch (err) {
    // 执行失败
    console.error(`check failed, code is ${err.code}, message is ${err.message}`);
  }

2、查看数据库:从 Device Files Browser沙箱目录下导出(右键SaveAs)数据库文件,.db .db-shm .db-wal三个文件都要导出,然后使用sqliteStudio或者其他工具打开db文件。执行语句成功后在沙箱目录右键点击同步,可以立即刷新。

更多关于HarmonyOS 鸿蒙Next 关系型数据库executeSync,如何得知执行sql语句的成功或者失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next的关系型数据库中,executeSync 方法用于同步执行SQL语句。要得知执行SQL语句的成功或失败,可以通过检查 executeSync 方法的返回值或捕获其可能抛出的异常来实现。

具体来说,executeSync 方法通常会返回一个表示执行结果的对象或布尔值(取决于数据库API的设计),你可以根据这个返回值判断SQL是否成功执行。例如,如果返回值是布尔类型,true 表示执行成功,false 表示执行失败。

此外,executeSync 方法在执行过程中如果遇到错误,可能会抛出异常。因此,你也可以通过捕获这些异常来判断SQL语句是否执行失败。捕获到的异常通常会包含有关错误的详细信息,如错误代码、错误消息等。

在HarmonyOS鸿蒙Next的关系型数据库API中,应查阅具体的API文档以了解executeSync 方法的确切返回值类型和可能抛出的异常类型。

示例代码(伪代码):

try {
    bool result = database.executeSync(sqlStatement);
    if (result) {
        // SQL 执行成功
    } else {
        // SQL 执行失败,处理错误
    }
} catch (DatabaseException e) {
    // 捕获异常,SQL 执行失败,处理异常
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部