HarmonyOS 数据库拷贝后无法读取
将db文件拷贝到HarmonyOS数据库文件中,读取rowCount总是-1,帮忙看下这样操作是否正确?代码如下:
import fs from '@ohos.file.fs';
import PiccLog from '../PiccLog';
import { relationalStore } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
import { FindCityModle } from '../../model/city/FindCityModle';
export class DbUtils{
dbName = 'cityname.db'
KHDBNAME = "TB_REGION_COMCODE";//客户俱乐部表名
DSDBNAME = "TB_REGION_COMCODE_DS";//电商表名
// DSTHIRDTABLENAME = "TB_REGION_THIRD_COMCODE_DS";//电商表名
DSTHIRDTABLENAME = "TB_REGION_THIRD_COM";//电商表名
/**
* 拷贝数据库到沙箱目录
*/
copyDataToDatabase(){
let resMgr = getContext().resourceManager;
try {
let myBuffer: ArrayBufferLike = resMgr.getRawFileContentSync(this.dbName).buffer;
let dbFilePath = getContext().databaseDir + '/' + this.dbName;
let file = fs.openSync(dbFilePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen = fs.writeSync(file.fd, myBuffer);
console.info("testTag-write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
} catch (e) {
PiccLog.error('database copyDataToDatabase error : ' + JSON.stringify(e));
}
PiccLog.error('database copyDataToDatabase success : ');
}
getRdbStore(getRDStore:(data: relationalStore.RdbStore)=>void){
const STORE_CONFIG: relationalStore.StoreConfig = {
name: this.dbName,
securityLevel: relationalStore.SecurityLevel.S1
};
relationalStore.getRdbStore(getContext(), STORE_CONFIG, (err: BusinessError, rdbStore: relationalStore.RdbStore) => {
if (err) {
PiccLog.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`);
return;
}
PiccLog.info('database Get RdbStore successfully.');
getRDStore(rdbStore);
})
}
queryData(rdbStore: relationalStore.RdbStore){
let predicates = new relationalStore.RdbPredicates(this.DSTHIRDTABLENAME);
rdbStore.query(predicates).then((result)=>{
let arrCity:FindCityModle[] = [];
let rowCount = result.rowCount;
PiccLog.info('database rowCount : ' + rowCount)
while(result.goToNextRow()){
let findCityModel:FindCityModle = new FindCityModle();
findCityModel.adcode = result.getString(1);
findCityModel.cityCode = result.getString(2);
findCityModel.comCode = result.getString(3);
findCityModel.comCodeds = result.getString(4);
PiccLog.info("database queryData : adcode " + findCityModel.adcode + "cityCode :" + findCityModel.cityCode);
}
})
}
}
export default new DbUtils();
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
关系数据库无法拷贝怎么回事?
1942浏览 • 1回复 待解决
Sqlite数据库文件拷贝到沙箱目录下,然后通过数据库的api来读取数据
953浏览 • 1回复 待解决
如何读取本地/预制数据库?
966浏览 • 1回复 待解决
ets如何读取本地mysql数据库中的数据?
2791浏览 • 1回复 待解决
使用键值型数据库选择加密数据库后如何解密查看
1707浏览 • 1回复 待解决
HarmonyOS 在关系型数据库中调用deleteRdbStore函数后并未真实删除数据库,对数据库的操作依旧可用
226浏览 • 1回复 待解决
PolarDB存储数据库后中文数据在数据库中显示乱码怎么回事啊?
3327浏览 • 1回复 待解决
HarmonyOS 数据库框架
212浏览 • 1回复 待解决
HarmonyOS db文件无法读取到数据
375浏览 • 1回复 待解决
PolarDB存储数据库后中文数据在数据库中显示乱码什么原因有知道的吗?
2640浏览 • 1回复 待解决
数据库迁移至PolarDB后发现没有Performance-Schema库?
3208浏览 • 1回复 待解决
HarmonyOS 数据库dataORM插入数据失败
58浏览 • 1回复 待解决
为什么数据库插入回调中显示数据插入成功,读取却失败了?
292浏览 • 1回复 待解决
关系型数据库无法循环多次删除或者更新
233浏览 • 1回复 待解决
使用ets创建数据库如何处理数据库升级?
2850浏览 • 1回复 待解决
HarmonyOS 数据库的加密等级对数据库打开检索效率的影响
268浏览 • 1回复 待解决
HarmonyOS 关系型数据库批量插入数据
73浏览 • 1回复 待解决
如何针对读取繁重的工作负载优化我的 PostgreSQL 数据库?
2484浏览 • 2回复 待解决
HarmonyOS中如何支持类似sqlcipher/wcdb 这种加密数据库文件读取及处理
368浏览 • 1回复 待解决
HarmonyOS relationalStore数据库设置监听
267浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
361浏览 • 1回复 待解决
数据库入表时无法使用内建关键字
1653浏览 • 1回复 待解决
OrmDatabase 数据库问题
3441浏览 • 1回复 待解决
多个数据库,同步数据。
1770浏览 • 1回复 待解决
KVManager 存储数据后,启动 App 读取失败
63浏览 • 1回复 待解决
ROWCOUNT -1可能是表不存在,请确认"TB_REGION_THIRD_COM"这个表是否存在,将rawfile下的文件拷贝到沙箱目录可以通过这种方式,参考demo: