new LobRecordIterator(ds)
Classe que permite iterar pelos registros da tabela iLob, permitindo a leitura do conteúdo dos arquivos e seus metadados.
Esta classe deve ser utilizada quando é necessária a leitura de uma grande quantidade de objetos da LobStorage ou quando a seleção dos conteúdos a serem lidos é complexa e depende de critérios que envolvem outras tabelas do sistema.
Parameters:
Name | Type | Description |
---|---|---|
ds |
DataSet | DataSet contendo os registros da tabela iLob a serem iterados. O DataSet informado deve conter todos os campos da tabela iLob. |
Example
const LobRecordIterator = require('@nginstack/engine/lib/database/LobRecordIterator.js'); const File = require('@nginstack/engine/lib/io/File.js'); // Query jpeg user profiler images with size greater than 10KB const ds = database.query( 'SELECT * FROM iLob l ' + 'WHERE l.iMimeType = -1898187688 ' + // image/jpg ' AND l.iSize > 10240 ' + ' AND l.iKey IN (SELECT iLob FROM iDataRel WHERE iClass = -1898141861)' // Imagens de perfil de usuário ); const outputDir = 'lob-iterator-test'; const lobIterator = new LobRecordIterator(ds); let next = lobIterator.next(); while (!next.done){ const lob = next.value; File.fileFromString(File.pathAppend(outputDir, lob.name), lob.content); next = lobIterator.next(); }
Methods
-
next()
-
Método responsável por percorrer os registros. Quando chamado pela primeira vez esse método posiciona o cursor no primeiro registro.
O objeto retornado possui as seguintes propriedades:
- "done": indica se ainda existem registros a serem percorridos.
- "value": instância de
LargeObject
associada ao registro corrente. Por meio dela é possível ler o conteúdo do arquivo, bem como seus metadados. Será undefined caso não haja mais registros a serem lidos.
Returns:
Objeto que indica se a iteração terminou e o
LargeObject
associado ao registro corrente.- Type
- Object