| Komut | Alanlar | Yanıt |
|---|---|---|
fetch |
cursorId, count? (öndeğer oturumun fetchSize'ı) |
rows[][], rowCount, done (true ise imleç kapanmıştır) |
closeCursor |
cursorId |
closed |
İmleç ileri yönlüdür ve işlemle birlikte yaşar: COMMIT / ROLLBACK (RETAINING dahil) sonrasında, o işlem
bitmeden açılmış imleçler kapanır ve yanıtın closedCursors[] alanında bildirilir. Aynı istekte işlem bittikten
SONRA açılan imleç (kendi içinde commit eden ALTER DATABASE … UPGRADE / ADOPT LEVEL raporu, commit; select …
betiği) açık kalır ve fetch ile sonuna kadar çekilir; boşta kalan imleç cursorIdleTimeout (conf) sonunda bir
sonraki komutta kapatılır. Düşen bir fetch (iptal, koşucu hatası) imleci kapatır.
Satır içini (maxInlineBlob, conf) aşan ikili değer (BLOB / BINARY, csNONE) satırda değerin yerine
{"blob": id, "size": n} nesnesi olarak gelir; gövde parça parça okunur. Metin blob'ları (CLOB) hep satır içidir.
| Komut | Alanlar | Yanıt |
|---|---|---|
readBlob |
blobId, offset? (0), length? (öndeğer maxInlineBlob) |
data (JSON base64 / BSON ikili), offset, length, size, done |
writeBlob |
blobId? (yoksa yeni tutamaç), data (JSON base64 metin / BSON ikili) - parça eklenir |
blobId, size |
closeBlob |
blobId |
closed |
writeBlob ile yüklenen gövde bir parametreye {"blob": id} değeriyle bağlanır (execute / executePrepared
params dizisinde ya da nesnesinde). Tutamaçlar oturumla yaşar; boşta kalan tutamaç cursorIdleTimeout sonunda
düşer. Durumsuz uçta (§7.7) tutamaç yoktur: değer boyutu ne olursa olsun satır içidir.