标签: sqlite

如何在sqlite中找到二进制blob的长度(大小)

我有一个包含BLOB文件的sqlite表,但需要对blob进行大小/长度检查,我该怎么做?

根据我发现的一些文档,使用length(blob)将不起作用,因为length()仅适用于文本,并将在第一个NULL之后停止计数.我的实证检验证明了这一点.

我正在使用SQLite 3.4.2


更新:

因此,从SQLite 3.7.6开始,似乎length()函数返回正确的blob值 - 我检查了sqlite的各种更改日志,但没有看到更正的版本.

来自Sqlite 3.7.6:

payload_id|length(payload)|length(hex(payload))/2
1807913|194|194
1807914|171|171

文件被更改,以反映这一点.

length(X)   The length(X) function returns the length of X in characters if X is
            a string, or in bytes if X is a blob. If X is NULL then length(X) is
            NULL. If X is numeric then length(X) returns the length of a string 
            representation of X.

sqlite size blob

36
推荐指数
3
解决办法
3万
查看次数

在Python中使用sqlite是否需要关闭游标?

这是场景.在您的函数中,您使用游标执行语句,但其中一个失败并抛出异常.在关闭正在使用的光标之前,您的程序退出该函数.光标是否会占用空间?我必须关闭光标吗?

另外,Python文档中有一个游标使用示例,并说:"如果完成游标,我们也可以关闭游标." 关键字是"可以",而不是"必须".这是什么意思呢?

python sqlite

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

SQLiteOpenHelper的Android JUnit测试

我是junit测试的新手.

任何人都可以帮助我,如何测试我的SQLiteOpenHelper课程.

意味着我必须实现哪些类以及如何测试我的数据库和表.我正在使用Eclipse IDE.

sqlite junit android

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

核心数据VS Sqlite或FMDB ....?

现在这可能看起来像一个重复的线程,但我的问题是我已经阅读了很多问题,如核心数据与SQLite 3和其他人,但这些都是2 - 3年.我还读到FMDB是由于iOS上不支持核心数据而开发的,因此不应再使用它了.而另一方面,我已经读过,不应该将核心数据用作数据库.

所以我很困惑,我是否应该使用核心数据进行对象存储.我的意思是在什么基础上我应该决定使用哪个?是否有苹果或其他人提供的指导方针......或者是时间会来找我的东西.

sqlite iphone core-data fmdb ios

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

在Sqlite表中插入null

我想知道如何在Android中的SQLite表中插入一个空值.

这是表:

"create table my table (_id integer primary key autoincrement, " +
                                               "deviceAddress   text not null unique, " +
                                               "lookUpKey text , " + 
                                               "deviceName text , " +
                                               "contactName text , " +
                                               "playerName text , " +
                                               "playerPhoto blob " +
                                               ");";    
Run Code Online (Sandbox Code Playgroud)

我想使用一个简单的插入命令,execSQL但因为其中一个值是blob我不能这样做(我认为).

所以,我正在使用标准db.Insert命令.如何使其中一个值为null?

如果我只是在ContentValues对象中跳过它会自动在列中放置一个空值吗?

sqlite android

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

即使在连接关闭后,SQLite也会使数据库保持锁定状态

我在ASP.NET应用程序(框架4.0)中使用System.Data.SQLite提供程序.我遇到的问题是,当我在SQLite数据库的表中插入某些内容时,数据库会被锁定,即使在连接处理后锁也没有被释放.

尝试访问该文件时,错误是:"进程无法访问文件'catalog.sqlite',因为它正由另一个进程使用."

我的代码非常简单,我打开连接,从SQLServer数据库读取一些数据,将数据插入SQLite(通过SQLiteDataAdapter),然后关闭连接并处置所有内容以保证安全.但是,当我在填充数据后尝试压缩文件时,我得到了这个错误.

我已经在StackOverflow上阅读了所有类型的建议,但没有一个能帮助解决问题(关闭防病毒软件,更改事务模型,在压缩文件之前等待几秒钟,将所有插入调用包装到事务中,等等.但没有人帮助解决这个问题.

也许有一些特定于ASP.NET的东西(多线程是问题?即使我在开发机器上测试它,只有一个调用该函数而没有并发?)

作为旁注,我尝试避免使用DataTable和SQLiteDataAdapter,并且直接使用SQLiteCommand,这样就可以实现魅力.当然,我可以继续将查询构建为字符串而不是使用数据适配器,但是当有一个构建框架时,我发现它有点尴尬.

c# sqlite system.data.sqlite

36
推荐指数
4
解决办法
4万
查看次数

在哪里下载sqlitejdbc?

我在SQLite官方网站上找到了下载URLhttp://www.zentus.com/sqlitejdbc.但使用此链接会导致:

404未找到.

sqlitejdbc有什么问题?我在哪里可以找到官方网站?

java sqlite jdbc java-ee

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

在SQLite数据库中插入当前日期和时间

我想在SQLite中创建一个表,其中一个字段用于日期,其中当前实例的日期和时间应该保存.我应该使用哪种数据类型?

我打算使用'timestamp'.如何将当前时间戳值插入字段?另外如何为这个日期字段写内容值?

sqlite android-sqlite

36
推荐指数
3
解决办法
8万
查看次数

我们可以使用Guid作为Sqlite数据库中的主键

是否可以将GUID用作SQLITE数据库中的主键?如果可以,可以使用哪种数据类型?

sqlite uuid android guid primary-key

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

房间 - 选择IN状态的查询?

是否可以在INRoom中使用SQLite的条件?

我正在尝试从我的数据库中选择一个项目列表,其中某列的值(在本例中为TEXT列)与一组过滤器值中的任何一个匹配.根据我的知识,这很容易在SQL和SQLite中完成,只需INSELECT语句中添加一个条件(参见此处).但是,我似乎无法使它与Room合作.

我一直收到这个错误:

Error:(70, 25) error: no viable alternative at input 'SELECT * FROM Table WHERE column IN :filterValues'
Run Code Online (Sandbox Code Playgroud)

(@Query调用DAO 注释方法的输入filterValues)

我现在尝试了三种不同的方法:

  1. 将论证作为一个 List<String>
  2. 将论证作为一个 String[]
  3. 最后将参数简单地传递给了String,但格式化为(value_1, value_2, ..., value_n)

特别是最后一个应该可以很容易地工作,因为它将(或者至少应该)直接转换为SELECT * FROM Table WHERE column IN (value_1, value_2, ..., value_n),SELECT如果您只是直接访问数据库,这就是您手动写出的确切方式.

sqlite select android sql-in android-room

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