我有一个包含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.
这是场景.在您的函数中,您使用游标执行语句,但其中一个失败并抛出异常.在关闭正在使用的光标之前,您的程序退出该函数.光标是否会占用空间?我必须关闭光标吗?
另外,Python文档中有一个游标使用示例,并说:"如果完成游标,我们也可以关闭游标." 关键字是"可以",而不是"必须".这是什么意思呢?
我是junit测试的新手.
任何人都可以帮助我,如何测试我的SQLiteOpenHelper课程.
意味着我必须实现哪些类以及如何测试我的数据库和表.我正在使用Eclipse IDE.
现在这可能看起来像一个重复的线程,但我的问题是我已经阅读了很多问题,如核心数据与SQLite 3和其他人,但这些都是2 - 3年.我还读到FMDB是由于iOS上不支持核心数据而开发的,因此不应再使用它了.而另一方面,我已经读过,不应该将核心数据用作数据库.
所以我很困惑,我是否应该使用核心数据进行对象存储.我的意思是在什么基础上我应该决定使用哪个?是否有苹果或其他人提供的指导方针......或者是时间会来找我的东西.
我想知道如何在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对象中跳过它会自动在列中放置一个空值吗?
我在ASP.NET应用程序(框架4.0)中使用System.Data.SQLite提供程序.我遇到的问题是,当我在SQLite数据库的表中插入某些内容时,数据库会被锁定,即使在连接处理后锁也没有被释放.
尝试访问该文件时,错误是:"进程无法访问文件'catalog.sqlite',因为它正由另一个进程使用."
我的代码非常简单,我打开连接,从SQLServer数据库读取一些数据,将数据插入SQLite(通过SQLiteDataAdapter),然后关闭连接并处置所有内容以保证安全.但是,当我在填充数据后尝试压缩文件时,我得到了这个错误.
我已经在StackOverflow上阅读了所有类型的建议,但没有一个能帮助解决问题(关闭防病毒软件,更改事务模型,在压缩文件之前等待几秒钟,将所有插入调用包装到事务中,等等.但没有人帮助解决这个问题.
也许有一些特定于ASP.NET的东西(多线程是问题?即使我在开发机器上测试它,只有一个调用该函数而没有并发?)
作为旁注,我尝试避免使用DataTable和SQLiteDataAdapter,并且直接使用SQLiteCommand,这样就可以实现魅力.当然,我可以继续将查询构建为字符串而不是使用数据适配器,但是当有一个构建框架时,我发现它有点尴尬.
我在SQLite官方网站上找到了下载URLhttp://www.zentus.com/sqlitejdbc.但使用此链接会导致:
404未找到.
sqlitejdbc有什么问题?我在哪里可以找到官方网站?
我想在SQLite中创建一个表,其中一个字段用于日期,其中当前实例的日期和时间应该保存.我应该使用哪种数据类型?
我打算使用'timestamp'.如何将当前时间戳值插入字段?另外如何为这个日期字段写内容值?
是否可以将GUID用作SQLITE数据库中的主键?如果可以,可以使用哪种数据类型?
是否可以在INRoom中使用SQLite的条件?
我正在尝试从我的数据库中选择一个项目列表,其中某列的值(在本例中为TEXT列)与一组过滤器值中的任何一个匹配.根据我的知识,这很容易在SQL和SQLite中完成,只需IN在SELECT语句中添加一个条件(参见此处).但是,我似乎无法使它与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)
我现在尝试了三种不同的方法:
List<String>String[]String,但格式化为(value_1, value_2, ..., value_n)特别是最后一个应该可以很容易地工作,因为它将(或者至少应该)直接转换为SELECT * FROM Table WHERE column IN (value_1, value_2, ..., value_n),SELECT如果您只是直接访问数据库,这就是您手动写出的确切方式.