|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
Есть такой код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Передаю в него блоб размером 13585 байт и начинаю его читать буфером по 1000 байт. Вижу такой лог Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:47 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
А вот лог для сегмента 256 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:55 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
_Vasilisk_Это так и задумывалось или все таки баг? Так и задумывалось. RESULT_SEGMENT возвращается, когда сегмент блоба в твой буфер не влез. RESULT_OK - когда влез. Увеличь буфер до 64к и увидишь разницу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:59 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Так и задумывалось. RESULT_SEGMENT возвращается, когда сегмент блоба в твой буфер не влез. RESULT_OK - когда влез. Тогда здесь неправильный переводПоследний параметр в userFunctionAcceptingBlobData() — это флаг достижения конца сегмента — когда getSegment() возвращает код завершения RESULT_SEGMENT , о чём будет уведомлена функция (в последний параметр передан false), то есть этот сегмент прочитан не полностью, и продолжение ожидается при следующем вызове .Причем код выше соответствует фразеПоследний параметр в userFunctionAcceptingBlobData() — это флаг достижения конца сегмента ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 18:20 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
_Vasilisk_неправильный перевод Нет, это-то как раз абсолютно правильный перевод. И фраза тоже правильная. RESULT_SEGMENT означает, что конец сегмента не достигнут, поскольку в буфер не влез. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 18:28 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
Виноват. Фразусегмент прочитан не полностьючитал как "данные прочитаны не полностью" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 18:43 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
_Vasilisk_, Readed - серьёзно??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 19:05 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
kdvReaded - серьёзно??? Я тоже так обычно пишу, хотя и знаю, что это не по-английски. Но получить конфликт имён с библиотечной функцией - тот ещё геморрой в отладке. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 19:07 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
А вот еще вопрос. isc_info_blob_max_segment показывает, что размер сегмента блоба 256 байт. Читаю его буфером в 256 байт. В итоге мне в середине блоба (после чтения 54784 байт) попадается сегмент 255 байт. А потом идут сегменты опять по 256 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Как это получается? Сам блоб формируется так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:26 |
|
Код возврата IBlob.GetSegment
|
|||
---|---|---|---|
#18+
Сегменты читаются так как записываются. Почему PSQL пишет такими мелкими сегментами - вопрос к разработчикам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:28 |
|
|
start [/forum/topic.php?fid=40&msg=39965405&tid=1560338]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 255ms |
total: | 411ms |
0 / 0 |