HarmonyOS 鸿蒙Next rdb 插入数据报错问题求解:Insert is failed, code is 14800000, message is Inner error. Inner code is -1
HarmonyOS 鸿蒙Next rdb 插入数据报错问题求解:Insert is failed, code is 14800000, message is Inner error. Inner code is -1
代码如下:
loadNet() {
HomeViewModel.getTabTitles(result => {
LogUtils.debug("网络请求结果111: " + JSON.stringify(result))
this.articlesBarsList = result.items;
let context = getContext(this) as common.UIAbilityContext;
const STORE_CONFIG: relationalStore.StoreConfig = {
name: ‘RdbTest.db’, // 数据库文件名
securityLevel: relationalStore.SecurityLevel.S1 // 数据库安全级别
};
const SQL_CREATE_TABLE = ‘CREATE TABLE IF NOT EXISTS tabs (ID INTEGER , NAME TEXT NOT NULL, TEXT TEXT,order INTEGER, selected BOOLEAN)’; // 建表Sql语句
relationalStore.getRdbStore(context, STORE_CONFIG, (err, store) => {
if (err) {
console.error(Failed to get RdbStore. Code:${err.code}, message:${err.message}
);
return;
}
console.info(Succeeded in getting RdbStore.
);
store.executeSql(SQL_CREATE_TABLE); // 创建数据表
for (let index = 0; index < this.articlesBarsList.length; index++) {
const valueBucket: relationalStore.ValuesBucket = {
‘id’: this.articlesBarsList[index].id,
‘name’: this.articlesBarsList[index].name,
‘selected’: Boolean(this.articlesBarsList[index].selected,),
‘text’: this.articlesBarsList[index].text,
‘order’: this.articlesBarsList[index].order,
};
store.insert(“tabs”, valueBucket, (err, rowId) => {
if (err) {
console.error(Insert is failed, code is ${err.code},message is ${err.message}
);
return;
}
console.info(Insert is successful, rowId = ${rowId}
);
})
}
// 这里执行数据库的增、删、改、查等操作
});
// if(this.articlesBarsList.length>0){
// for (let index = 0; index < this.articlesBarsList.length; index++) {
// let id=this.articlesBarsList[index].id;
// let names = this.articlesBarsList[index].name;
// let selected = true
// this.insertData(new ArticlesBarsDataBean(id,names,names,selected,Number(id)))
//
// // this.insertData(this.articlesBarsList[index])
// }
// }
})
}
更多关于HarmonyOS 鸿蒙Next rdb 插入数据报错问题求解:Insert is failed, code is 14800000, message is Inner error. Inner code is -1的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你给出的错误信息意味着你的sql语句有语法错误,经测试,将表字段order进行替换,避免与sql关键字冲突。
//demo如下
import RdbStoreUtil from '../comm/utils/RdbStoreUtil';
import { TestModel } from '../model/TestModel';
import { relationalStore } from '[@kit](/user/kit).ArkData';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct TestRdbPage {
[@State](/user/State) message: string = 'Hello World';
rdbStore: relationalStore.RdbStore | null = null
list: TestModel[] = [
new TestModel(1, '111', '111', 1, 1),
new TestModel(2, '222', '222', 2, 1),
new TestModel(3, '333', '333', 1, 1),
new TestModel(4, '444', '444', 1, 1),
new TestModel(5, '555', '555', 1, 1),
new TestModel(6, '666', '666', 1, 1),
new TestModel(7, '777', '777', 1, 0),
]
insert() {
const SQL_CREATE_TABLE =
'CREATE TABLE IF NOT EXISTS TABS (ID INTEGER , NAME TEXT NOT NULL, TEXT TEXT,ORDERNUM INTEGER, selected BOOLEAN)';
// 'CREATE TABLE IF NOT EXISTS TABS (ID INTEGER , NAME TEXT NOT NULL, TEXT TEXT,ORDER INTEGER, selected BOOLEAN)';//执行出错
this.rdbStore = RdbStoreUtil.getRdbStore()
this.rdbStore?.executeSql(SQL_CREATE_TABLE)
for (let index = 0; index < this.list.length; index++) {
const valueBucket: relationalStore.ValuesBucket = {
'id': this.list[index].id,
'name': this.list[index].name,
'text': this.list[index].text,
'ordernum': this.list[index].ordernum,
// 'order': this.list[index].ordernum,//执行出错
'selected': this.list[index].selected,
};
if (this.rdbStore) {
(this.rdbStore as relationalStore.RdbStore).insert("TABS", valueBucket, (err, rowId) => {
if (err) {
console.error(`Insert is failed, code is ${err.code},message is ${err.message}`);
return;
}
console.info(`Insert is successful, rowId = ${rowId}`);
})
}
}
}
build() {
Column({ space: 10 }) {
Button('插入数据')
.onClick(() => {
this.insert()
})
}.justifyContent(FlexAlign.Center)
.height('100%')
.width('100%')
}
}
更多关于HarmonyOS 鸿蒙Next rdb 插入数据报错问题求解:Insert is failed, code is 14800000, message is Inner error. Inner code is -1的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
const SQL_CREATE_TABLE = 'CREATE TABLE IF NOT EXISTS tabs (ID INTEGER , NAME TEXT NOT NULL, TEXT TEXT,order INTEGER, selected BOOLEAN)';
你这个创表的指令能执行成功?order是关键字不能作为colum的名称
在HarmonyOS鸿蒙Next的rdb(关系型数据库)中,遇到插入数据报错,错误码为14800000,错误信息为“Inner error. Inner code is -1”,这通常表明底层数据库操作发生了内部错误。
-
检查数据库状态:首先确认数据库服务是否正常运行,以及数据库连接是否有效。确保数据库未处于只读模式或维护状态。
-
验证数据格式:检查你尝试插入的数据是否符合表的定义,包括数据类型和约束条件(如主键唯一性)。
-
权限问题:确认执行插入操作的账户具有足够的权限。在某些情况下,权限不足可能导致操作失败。
-
资源限制:检查数据库是否达到存储或连接数的上限,这可能影响数据写入。
-
日志分析:查看数据库日志文件,可能包含更详细的错误信息或异常堆栈,有助于定位问题。
-
重启数据库服务:在排除其他因素后,尝试重启数据库服务,看是否能解决问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html