尝试写入只读数据库(代码 1032)

Posted

技术标签:

【中文标题】尝试写入只读数据库(代码 1032)【英文标题】:attempt to write a readonly database (code 1032) 【发布时间】:2018-07-03 06:36:28 【问题描述】:
import Expo,  SQLite  from 'expo';
const db = SQLite.openDatabase('db.db');
export function create()
    db.transaction(tx => 
      tx.executeSql(
        'CREATE TABLE if not exists material_mg (ID INT PRIMARY KEY ,order_number VARCHAR(10) ,truck_number VARCHAR(10) ,enter_mine_date  TEXT ,vehicle_owner_name VARCHAR(50) ,driver_address TEXT ,driver_mobile_number BIGINT ,weigh_bridge FLOAT,in_time TEXT ,out_time  TEXT ,drop_off_point  TEXT ,transporter_name VARCHAR(50) ,loaded_from VARCHAR(50) ,mines_name VARCHAR(50) ,material  VARCHAR(20) ,total_number_of_seats SMALLINT ,loading_in_timestamp  TEXT,loading_out_timestamp TEXT,unloading_company_name VARCHAR(50) ,unloading_company_address VARCHAR(100),type_of_trip VARCHAR(5)  ,loading_supervisor_name VARCHAR(50) ,weight FLOAT ,challan_date TEXT,challan_number VARCHAR(10) ,t_h CHAR ,party_name VARCHAR(50) ,sil_number VARCHAR(10) ,diesel INT,advance INT,booking_name VARCHAR(50) ,colliery_name VARCHAR(50) ,lifter_name VARCHAR(50) ,coalnet_weight FLOAT ,gross_weight FLOAT ,tare_weight FLOAT ,net_weight FLOAT ,remarks TEXT  ,ccl_bill_number INT ,cash INT ,destination  VARCHAR(50) ,broker_name  VARCHAR(50) ,broker_mobile_number  BIGINT )',null,(tx,resultset)=>console.log(resultset),(tx,resultset)=>console.log(resultset)
      );
    );
  

以上代码是我的数据库文件。当我执行这个创建查询时,我得到attempt to write a readonly database (code 1032) 错误。我正在使用带有 React Native 的 expo 客户端。不确定在哪里配置访问控制。在 expo sqlite 文档上也找不到任何东西。任何帮助表示赞赏。提到的其他解决方案在这里不适用,因为我使用的是 CRNA 方法。

【问题讨论】:

您是否考虑过该文件确实被写保护了?您是否尝试过使用 SQLite CLI? 你说的是哪个文件? @墨菲 您尝试写入的数据库文件db.db。如果它还不存在,它也可能是您没有写入权限的工作目录。检查一下。 Change SQLite database mode to read-write的可能重复 @Murphy 还没有找到解决方案。我正在使用 CRNA 方法进行本机反应。我没有任何 gradle 或 build 文件。 【参考方案1】:

当数据库文件被删除或重命名时,可能会发生这种情况。 见1032错误码解释-https://www.sqlite.org/rescode.html#readonly_dbmoved

【讨论】:

以上是关于尝试写入只读数据库(代码 1032)的主要内容,如果未能解决你的问题,请参考以下文章

UWP SQLite 错误:“尝试写入只读数据库” [重复]

Django 登录错误:在 IIS 中“尝试写入只读数据库”

BEGIN IMMEDIATE 可能在 0:8/尝试写入只读数据库后意外无法步进

解决线上主从复制1032报错

解决线上主从复制1032报错

解决磁盘只读介质受写入保护或者不能写入和删除数据的问题