uniapp 使用plus.sqlite 数据库查询报错row too big to fit into CursorWindow requiredPos=13,totalRows=14?

uniapp 使用plus.sqlite 数据库查询 数据时报错
数据库数据格式 字段 "NR" 字段类型 text | blob 值:1
数值就是"1",长度也不算长啊,不知道为什么就报这个错误
row too big to fit into CursorWindow requiredPos=13,totalRows=14

select id,bt,strftime('%Y-%m-%d %H:%M:%S',fbs)fbsj,fbr,nr,fjdz from '表名' t where lxid='123123123' order by fbsj desc

阅读 1.9k
2 个回答

将图片存储在文件系统中

将图片的 Base64 数据存储在文件系统中,而不是数据库中。数据库中只存储图片的文件路径。

1.保存图片到文件系统:

function saveImage(base64Str, fileName) {
    var bitmap = new plus.nativeObj.Bitmap(fileName);
    bitmap.loadBase64Data(base64Str, function() {
        bitmap.save('_doc/' + fileName, {}, function() {
            console.log('图片保存成功');
        }, function(e) {
            console.error('图片保存失败:', e.message);
        });
    }, function(e) {
        console.error('加载Base64图片失败:', e.message);
    });
}

// 示例调用
saveImage(nr, 'image1.png');

2.在数据库中存储图片路径:

var db = plus.sqlite.openDatabase({name: 'your_database.db'});
db.executeSql({
    sql: "INSERT INTO 表名 (nr_path) VALUES (?)",
    params: ['_doc/image1.png'],
    success: function(e) {
        console.log("路径插入成功:", e);
    },
    fail: function(e) {
        console.error("路径插入失败:", e.message);
    }
});

3.读取图片时从文件系统中加载:

function loadImage(fileName) {
    var bitmap = new plus.nativeObj.Bitmap(fileName);
    bitmap.load('_doc/' + fileName, function() {
        bitmap.toBase64Data({}, function(base64Str) {
            console.log('图片加载成功:', base64Str);
        }, function(e) {
            console.error('图片转换Base64失败:', e.message);
        });
    }, function(e) {
        console.error('图片加载失败:', e.message);
    });
}

// 示例调用
loadImage('image1.png');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏