2015-10-02 11 views
5

Sto cercando di ottenere i dati da Firebird DB con l'opzione di selezione sequenziale. Vorrei ottenere le prime 500 righe, come si vede sul mio codice. E per i test, sto aumentando 'k' per ogni 'riga' e loggando 'k' e 'md5' alla console.Node-firebird seleziona in sequenza

Quando eseguo il mio codice, mi dà un numero casuale di righe. Ma il numero di righe è sempre superiore a 500.

Come posso risolvere questo problema? Eventuali suggerimenti?

var Firebird = require('node-firebird'); 
var md5 = require('md5'); 
var options = {}; 
//options.host = '127.0.0.1'; 
//options.port = 3050; 
options.database = '/Users/bla/mydb.FDB'; 
options.user = 'SYSDBA'; 
options.password = 'masterkey'; 
var pool = Firebird.pool(10, options); 
var k = 0; 
pool.get(function (err, db) { 

    if (err) 
    throw err; 
    db.sequentially('SELECT FIRST 500 SOME QUERY', function (row, index) { 
    k = k + 1; 
    console.log(k + ' => ' + md5(JSON.stringify(row)) + '\n'); 
    }, function (err) { 
    db.detach(); 
    }); 
}); 
+0

@ain E non mi dà 500 righe casuali, mi dà un numero casuale di righe. Ad esempio 787 righe o 800 righe. –

+0

Spiacente, ho letto erroneamente la domanda :( – ain

risposta

0

a seconda della versione di Firebird "selezionare prima n" può dare un errore a meno che non si include anche un "ordine dalla" clausola

+1

In realtà, il bug era sul driver node-firebird. –