在我的数据库中,我们有一个 varbinary 字段,它以字节为单位存储文件内容。
由于文件很大并且一次读取所有内容会导致超时,所以我想读取块中的数据,就像我们在 sql 中具有写入函数来使用块写入数据一样。
请提出任何想法?
谢谢
在我的数据库中,我们有一个 varbinary 字段,它以字节为单位存储文件内容。
由于文件很大并且一次读取所有内容会导致超时,所以我想读取块中的数据,就像我们在 sql 中具有写入函数来使用块写入数据一样。
请提出任何想法?
谢谢
要通过一个简单的 . 来做到这一点SELECT ...
,您可以拖放到 ADO.NET,即ExecuteReader
,指定CommandBehaviour.SequentialAccess
标志。现在您可以重复调用该GetBytes
方法将顺序块读入缓冲区。例如:
byte[] buffer = new byte[8040];
int bytes;
long offset = 0;
while((bytes = (int)reader.GetBytes(col, offset, buffer, 0, buffer.Length)) >0) {
// TODO: do something with `bytes` bytes from `buffer`
offset += bytes;
}
你看过FILESTREAM
数据类型吗?