小编tec*_*amp的帖子

SQLiteBlobTooBigException:写入数据库时​​行太大,无法放入 CursorWindow

当我尝试添加到 android 上的 sqllite DB 时,我看到上述错误。我正在使用 cloudant 库。这是堆栈跟踪:

2019-07-17 18:04:48.292 5522-5753/org.iprd.identity E/SQLiteQuery: exception: Row too big to fit into CursorWindow requiredPos=0, totalRows=1; query: SELECT docs.docid, docs.doc_id, revid, sequence, current, deleted, parent, json FROM revs, docs WHERE docs.docid=? AND revs.doc_id=docs.doc_id AND revid=? ORDER BY revs.sequence LIMIT 1
2019-07-17 18:04:48.302 5522-5522/org.iprd.identity E/DatabaseImpl: Failed to create document
    java.util.concurrent.ExecutionException: android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
        at java.util.concurrent.FutureTask.report(FutureTask.java:123)
        at java.util.concurrent.FutureTask.get(FutureTask.java:193)
        at com.cloudant.sync.internal.documentstore.DatabaseImpl.get(DatabaseImpl.java:1084)
        at com.cloudant.sync.internal.documentstore.DatabaseImpl.create(DatabaseImpl.java:925)
Run Code Online (Sandbox Code Playgroud)

我以前从未遇到过这个问题,但是,我最近进行了更改并开始使用第三方工具来给我一些图像。使用这个新工具,图像尺寸似乎比以前大得多。我通过对图像进行 Base64 编码将这些图像作为字符串存储在我的数据库中。然而,使用这个新工具,在存储图像时,我遇到了上述异常。

我有一个单元测试,我尝试使用从该图像生成的字符串之一,但这也会引发一个错误,即字符串大小太大,甚至无法编译。

解决这个问题的最佳方法是什么?-

  1. 我想做的是将图像存储在设备本身中,并将路径存储在数据库中。

  2. 我们可以对图像进行一些压缩以减小其文件大小吗? …

java sqlite android

6
推荐指数
2
解决办法
2万
查看次数

作为网络服务启动的问题

我有一个应用程序,我试图作为一个网络服务启动..

我是这样做的:sc create"App"binpath ="app path"obj =.\ NetworkService password =""

但我一直收到错误 - "帐户名称无效或不存在,或者密码对于指定的帐户名称无效."

什么可能是错的任何指针......

windows service network-service

5
推荐指数
2
解决办法
3399
查看次数

couchdb docker image:如何预填充数据库

我正在创建一个 couchdb docker 映像,其中预先填充了以下内容:

  1. 用户名密码
  2. 三个数据库
  3. 更新上述 3 个数据库的处理程序脚本。

我可以做 #1,但不能做 2 和 3。

我创建了一个带有基线图像的 couchdb 实例,然后创建了一个数据库并在其中添加了一个更新处理程序脚本。(注意 - 在启动 couchdb 实例时,我正在使用一个卷)

然后我做了一个 docker commit 并希望看到这个数据库+更新处理程序脚本填充在 docker 镜像本身中。但是,我看到它是空白的。

这里可能是什么问题?

我知道数据库和用户 ID 存储在以下文件夹中:/opt/couchdb/data

据我了解,docker commit 保存除了您存储在卷中的内容之外的所有内容。因此,存储在 /opt/couchdb/data 中的上述数据应该提交到 docker 镜像。

关于问题可能是什么的任何输入。是否可以明确强制 docker commit 保存 /opt/couchdb/data 文件夹的内容?

couchdb docker

5
推荐指数
0
解决办法
140
查看次数

如何获取访问令牌中的角色:keycloak

我正在尝试做的事情:

  1. 我有一个接收登录凭据的应用程序:用户的用户名和密码。我有一个 rest api,它在内部调用 keycloak REST API:/auth/realms/realmname/protocol/openid-connect/token 并获取该用户的访问令牌。

  2. 现在我正在构建另一个 REST API 来访问我想要执行以下操作的资源:doSomething(accesstoken, data)

    {

    一种) call keycloak API to validate access token and get roles.

    b) 如果角色 == 经理,流程(数据)

    c) 其他:返回错误信息。

    }

现在,我该怎么做 (a):验证访问令牌并获取与之关联的角色。我知道我们可以这样做:auth/realms/realmname/protocol/openid-connect/userinfo 但这仅提供有关用户的详细信息,如姓名、电子邮件等,但不显示任何角色。这是我得到的一个例子:

{
    "name": "test user",
    "sub": "e2bad34d-a1a9-4d70-ac84-bd3a3246023e",
    "email_verified": false,
    "preferred_username": "user",
    "given_name": "test",
    "family_name": "user"
}
Run Code Online (Sandbox Code Playgroud)

正如所见,它根本没有给出角色。然后我如何知道这个访问令牌有什么角色?有趣的是,当我搜索这个时,很多资源都在建议上述 userinfo 端点。但这只是告诉我我提供的访问令牌是有效的。不给角色。换句话说 - 它进行身份验证但不授权。

请建议。

谢谢,阿南德

oauth-2.0 openid-connect keycloak keycloak-gatekeeper

5
推荐指数
2
解决办法
9826
查看次数

Dijkstra 算法总是给出最短路径吗?

我正在学习 Dijkstra 算法并进行了基本查询。我有一个如下图所示的图表..(非负节点):

A---2-----B------16------D-----3-----F
* *
* *
3 4
* *
C-- --------2----------------------------------------E

从上面的图表显示看不清楚,但 AC 的距离为 3,EF 的距离为 4。

我有兴趣找到 A 和 F 之间的最短路径。

考虑目标节点 F。当我们考虑其最近的节点时,我们得到 D(DF 的权重为 3,EF 的权重为 4)。然而,当我们沿着这条路径走时,我们得到的最短路径为:A、B、D、F(总距离:19)。

快速观察告诉我们,最短路径实际上是 A、C、E、F(距离:9)。然而,由于在第一步中,E 比 D 更远,所以我们跟随 D。

我在这里错过了什么吗?Dijkstra 算法在这里显然没有显示正确的结果。

graph dijkstra

4
推荐指数
1
解决办法
8491
查看次数

查找用于创建ISM文件的InstallShield版本

我有一个旧的ism文件,我试图打开.但我不知道使用什么版本的Installshield来创建ISM项目.有没有办法从ISM文件中告诉它?

我在升级ISM文件时遇到了一些问题.

installer windows-installer installshield

3
推荐指数
1
解决办法
2198
查看次数

条件代码的 Go 编译器标志

我是 Go 新手,作为一名前 C++ 程序员,我对如何在 Go 中执行此操作有点困惑。我想添加一个编译时标志,基于该标志我可以包含一些测试代码。

我尝试使用-ldflags,但无法超越单个变量。

这是我尝试过的:-ldflags "X main.var1 var1_value" "X main.var2 var2_value"

我在这里做的事情正确吗?

compilation go

2
推荐指数
1
解决办法
475
查看次数

waitforsingleobject用于已经发出信号的事件

WaitForSingleObject(handle, timeout); 如果句子在调用之前已经发出信号,我会这样做WaitForSingleObject,函数会返回什么?

我认为它应该立即返回WAIT_OBJECT_0...但在我的情况下,它等待事件被设置,因为没有发生(事件已经设置),它超时.

请指教.

c++ winapi multithreading synchronization visual-c++

1
推荐指数
1
解决办法
6219
查看次数

左旋转数组 C++

这就是我想要做的:数组 A[] = {1,2,3,4,5} 左旋转 2:A:{3,4,5,1,2}

我们是否有一个简单而好的解决方案来做到这一点?我希望使用这个左旋转值更新数组 A 本身 - 没有额外的空间。

我尝试了各种方法,但对于各种测试用例,逻辑似乎不同,并且很难找到适合这个看似简单的任务的算法。

注意:我知道只需创建一个具有左旋转值的新数组即可轻松完成此操作。我正在尝试在输入数组本身中执行此操作。

请建议。简单的伪代码应该可以。

c++ arrays algorithm compare-and-swap

-2
推荐指数
2
解决办法
2589
查看次数