关于 Interbase BLOB 字段的 API 访问
通过 API 访问 InterBase 的 BLOB 部分的内容怎么看也不明白,到底是怎么回事?
如: 1、写 BLOB
我在一个 SQL 中写 INSERT INTO mytb(f1, f2) VALUES (v1, v2)
其中 f2 是一个 BLOB 字段。
我这样操作:
XSQLDA* xsqlda = (XSQLDA*) malloc(XSQLDA_LENGTH(1));
xsqlda->sqln = 1;
xsqlda->version = SQLDA_VERSION1;
isc_dsql_allocate_statement(status, &db, &stmt);
isc_start_transaction(status, &trans, 1, &db, 0, NULL);
isc_dsql_prepare(status, &trans, &stmt, 0, (char*)sql_expr, 1, xsqlda);
为简单起见,我对得到的字段列表采用了一个 ISC_QUAD* blob_quad 来存储,
blob_quad = new ISC_QUAD[xsqlda->sqln];
即每一个字段都分配一个 blob_id,这样以后检索时可直接使用索引.
然后...怎么写上述表达中的 BLOB,我用
isc_blob_handle blob_handle = ISC_NULL;
ISC_QUAD* blob_id = &(blob_quad[i]);
isc_create_blob2(ib->status,
&db,
&trans,
&blob_handle,
blob_id,
0,
NULL);
isc_put_segment(status,
&blob_handle,
buffer_size,
buffer);
isc_close_blob(status, &blob_handle);
根本没法写进数据,恳请指导如何操作?
2、读 BLOB 同样的问题。
能不能给我一段代码示例,先表示感谢。