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
待解决
相关问题
关系数据库无法拷贝怎么回事?
1979浏览 • 1回复 待解决
Sqlite数据库文件拷贝到沙箱目录下,然后通过数据库的api来读取数据
1016浏览 • 1回复 待解决
如何读取本地/预制数据库?
1039浏览 • 1回复 待解决
HarmonyOS 关系型数据库,是否可以读取本地已有的DB数据库文件?
36浏览 • 1回复 待解决
ets如何读取本地mysql数据库中的数据?
2858浏览 • 1回复 待解决
使用键值型数据库选择加密数据库后如何解密查看
1749浏览 • 1回复 待解决
HarmonyOS 在关系型数据库中调用deleteRdbStore函数后并未真实删除数据库,对数据库的操作依旧可用
272浏览 • 1回复 待解决
PolarDB存储数据库后中文数据在数据库中显示乱码怎么回事啊?
3384浏览 • 1回复 待解决
HarmonyOS db文件无法读取到数据
462浏览 • 1回复 待解决
HarmonyOS 数据库框架
277浏览 • 1回复 待解决
HarmonyOS 数据库数据更新怎么监听?
56浏览 • 1回复 待解决
PolarDB存储数据库后中文数据在数据库中显示乱码什么原因有知道的吗?
2653浏览 • 1回复 待解决
关系型数据库无法循环多次删除或者更新
289浏览 • 1回复 待解决
数据库迁移至PolarDB后发现没有Performance-Schema库?
3251浏览 • 1回复 待解决
为什么数据库插入回调中显示数据插入成功,读取却失败了?
332浏览 • 1回复 待解决
使用ets创建数据库如何处理数据库升级?
2913浏览 • 1回复 待解决
HarmonyOS 数据库dataORM插入数据失败
121浏览 • 1回复 待解决
HarmonyOS 如何批量更新数据库的数据?
42浏览 • 1回复 待解决
HarmonyOS 关系型数据库批量插入数据
171浏览 • 1回复 待解决
HarmonyOS 数据库多线程操作
53浏览 • 1回复 待解决
如何针对读取繁重的工作负载优化我的 PostgreSQL 数据库?
2521浏览 • 2回复 待解决
HarmonyOS中如何支持类似sqlcipher/wcdb 这种加密数据库文件读取及处理
444浏览 • 1回复 待解决
HarmonyOS 数据库的加密等级对数据库打开检索效率的影响
327浏览 • 1回复 待解决
HarmonyOS relationalStore数据库设置监听
314浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
395浏览 • 1回复 待解决
ROWCOUNT -1可能是表不存在,请确认"TB_REGION_THIRD_COM"这个表是否存在,将rawfile下的文件拷贝到沙箱目录可以通过这种方式,参考demo: