HarmonyOS relationalStore 获取数据库能成功,但是创建表格的时候报错了

创建表格的代码。

createHomeAppTypeSql = 'CREATE TABLE IF NOT EXISTS HOMEAPPTYPE(ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,NAME TEXT,TYPE TEXT, LISTIDS TEXT)'; 
 
async createHomeAppTypeTable(){ 
  relationalStore.getRdbStore(getContext(), this.STORE_CONFIG, (err, store) => { 
    if (err) { 
      console.error(`Failed to get iCE_DB. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    console.info('Succeeded in getting iCE_DB.'); 
 
    // 当数据库创建时,数据库默认版本为0 
    if (store.version === 0) { 
      store.executeSql(this.createHomeAppTypeSql,(error:BusinessError)=>{ 
        if(error){ 
          console.error('=======create table error:'+error.code+';error menssage:'+error.message); 
          return 
        } 
        console.info('=======create table success!!!') 
 
      }); // 创建数据表 
      // 设置数据库的版本,入参为大于0的整数 
      // store.version = 3; 
    } 
  });

输出日志:Succeeded in getting iCE_DB.=======create table error:14800000;error menssage:Inner error. Inner code is -1。

HarmonyOS
6h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

请参考以下代码示例:

rdbStore?: relationalStore.RdbStore; 
private context: Context = getContext(this) as common.UIAbilityContext; 
dataSet?: relationalStore.ResultSet; 
dbSet: Array<ShoppingCartSourceObject> = []; 
 
MyGetRdbStore() { 
  interface StoreConfig 
  { 
    name: string; 
    securityLevel: relationalStore.SecurityLevel; 
  } 
 
  const STORE_CONFIG: relationalStore.StoreConfig = { 
    name: 'ShoppingCart.db', // 数据库文件名 
    securityLevel: relationalStore.SecurityLevel.S1, // 数据库安全级别 
    encrypt: true // 可选参数,指定数据库是否加密,默认不加密 
    //dataGroupId: 'dataGroupID' // 可选参数,仅可在Stage模型下使用,表示为应用组ID,需要向应用市场获取。指定在此Id对应的沙箱路径下创建实例,当此参数不填时,默认在本应用沙箱目录下创建。 
  }; 
 
  relationalStore.getRdbStore(this.context, STORE_CONFIG, (err, store) => { 
    if (err) { 
      console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    else { 
      console.info(`Succeeded in getting RdbStore.`); 
    } 
    this.rdbStore = store; 
    this.CreateTable() 
  }) 
} 
 
CreateTable() { 
  const SQL_CREATE_TABLE = 
    'CREATE TABLE IF NOT EXISTS SHOPPINGCART (ID INTEGER PRIMARY KEY AUTOINCREMENT,TITLE TEXT NOT NULL, DETAIL TEXT NOT NULL, IMAGEID INTEGER, PRICE INTEGER, COUNT INTEGER)'; 
  if (this.rdbStore != undefined) { 
    this.rdbStore.executeSql(SQL_CREATE_TABLE); 
    console.log("建表成功") 
  }
分享
微博
QQ
微信
回复
31分钟前
相关问题
HarmonyOS relationalStore数据库设置监听
308浏览 • 1回复 待解决
数据库插入数据成功怎么回事?
2309浏览 • 1回复 待解决
关于数据库调试报错问题
209浏览 • 0回复 待解决
定位是否必须联网才能成功
1682浏览 • 1回复 待解决
关于用js创建数据库有懂吗?
2343浏览 • 1回复 待解决
调用关系数据库插值报错
111浏览 • 1回复 待解决