勇芳软件工作室.汉化:  CSQLite Classes > CSQLiteConnection Class > ISQLiteConnection Interface >

BlobOpen Method

Previous pageReturn to chapter overviewNext page

描述

 

此函数打开数据库strDbqRowstrColumn,表strTable中的BLOB的句柄;换句话说,相同的BLOB将被选择:

 

SELECT szColumn FROM szDb.szTable WHERE rowid = qRow;

 

PB语法

 

METHOD BlobOpen ( _

BYVAL strDb AS STRING, _

BYVAL strTable AS STRING, _

BYVAL strColumn AS STRING, _

BYVAL qRow AS QUAD, _

OPTIONAL BYVAL flags AS LONG _

) AS LONG

 

参数

 

strDb

 

[in]数据库名称。请注意,数据库名称不是包含数据库的文件名,而是使用ATTACH连接数据库时AS关键字后出现的数据库的符号名称。对于主数据库文件,数据库名称为“main”。对于TEMP表,数据库名称为“temp”。

 

strTable

 

[in]表名。

 

strColumn

 

[in]列名称。

 

qRow

 

[in]行号。如果BLOB句柄指向的行由UPDATE,DELETE或ON CONFLICT副作用修改,则BLOB句柄被标记为“已过期”。如果行的任何列都被更改,即使是除了BLOB句柄打开的列之外的列也是如此。调用BlobReadBlobWrite过期的BLOB句柄失败,返回代码为SQLITE_ABORT。在BLOB到期之前写入BLOB的更改在BLOB到期之前不会回滚。如果交易继续完成,这些更改将终止。

 

flags

 

[in]如果flags参数不为零,则BLOB将被打开以进行读写访问。如果为零,则BLOB被打开以进行读取访问。不可能打开作为索引或主键的一部分进行写入的列。如果启用外键约束,则无法打开作为子键的一部分进行写入的列。

 

返回值

 

成功后,返回SQLITE_OK,并将新的BLOB句柄写入ppBlob.否则返回错误代码,ppBlob设置为空指针。此函数设置数据库连接错误代码和消息可通过ErrCodeErrMsg和相关功能访问。请注意,ppBlob变量总是初始化为使BlobCloseBlobClose可以安全地使用,无论此函数的成功或失败如何。

 

备注

 

使用BlobBytes函数来确定打开的Blob的大小。blob的大小可能不会被此函数更改。使用UPDATE SQL命令更改blob的大小。

 

如果需要,可以使用BindZeroblobResultZeroblob函数和内置的zeroblob SQL函数,以创建一个空的零填充blob,使用此函数读取或写入。

 

为了避免资源泄露,每个开放的BLOB句柄最终都会通过调用BlobClose来释放。