|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
1. Велосипеды не мои, прошу не пинать, но тем не менее, что есть - то есть. Есть сторонняя информационная система, осмотры пациентов хранит весьма экзотически, а именно, HTML-документ осмотра "зажимает" GZIP-ом, кодирует BASE64 и полученную строку сохраняет в VARCHAR(32000). Есть другая информационная система, в неё надо автоматом перекидывать эти осмотры, но только они хранят RTF в BLOB. Обе системы на FireBird 2.58, диалект 1 Написал работающую UDF-ку: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
Если немного изменить процедуру, так, чтобы на вход подавать BLOB, то процедура возвращает пустую строку Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Контрольная процедура, без извращений, тоже работает: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Иными словами, извращения без BLOB работают, получаю RTF-документ, BLOB без извращений тоже работает, а вот извращения с BLOB уже не работают ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:12 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
zeon11 Код: pascal 1.
2. Здесь делфи никто не знает. 3. Версию делфи тоже никто не знает. "Пустая строка" может получиться из-за любой ошибки, которую необходимо искать с помощью отладки и логов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:38 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
zeon11 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:42 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
Про создание TForm в UDF ничего говорить не буду ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 21:43 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
zeon11чтобы на вход подавать BLOB, то процедура возвращает пустую строку блоб блобу рознь. Из udf blob работает только через определение, которое требует наличия ссылок на функции BlobGetSegment и BlobPutSegment, в ibase.h это typedef struct blobcallback. Через остальное оно не работает. Т.е. работает, но "внутри сервера", куда udf доступа нет. Что там у вас за TBlob - хрен его знает, скорее всего совсем не то, что надо. см. http://www.ibase.ru/files/download/blobsaveload.zip Впрочем, оно тоже теоретически могло устареть, это надо сверять с ibase.h последних версий FB. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 23:04 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
YuRock Про создание TForm в UDF ничего говорить не буду А что, так можно было?? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 04:01 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
fraks YuRock Про создание TForm в UDF ничего говорить не буду А что, так можно было?? Работает-же. Мне самому это не нравится, но мне надо получить RTF-документ, который можно получить только из экземпляра TRichEdit, который в свою очередь без Parent не создаётся. Вот и создаю экземпляр TForm. Если знаете более простой способ - буду благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 04:21 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
zeon11 TRichEdit, который в свою очередь без Parent не создаётся nil ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 07:53 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
UDF тут *совсем* не нужна. Модератор: Завязывай с обсценной лексикой с поводом и без повода. Некрасиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 10:44 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
В разделе Дельфей не так давно была тема с таким же вопросом про richedit, но, емнип, никакой простой альтернативы не присоветовали. Разве что платные невизуальные компоненты ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 16:24 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
Василий 2никакой простой альтернативы не присоветовали. Это потому, что в том разделе сложным считается всё, что нельзя натыкать мышкой. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 17:03 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
kdv zeon11чтобы на вход подавать BLOB, то процедура возвращает пустую строку блоб блобу рознь. Из udf blob работает только через определение, которое требует наличия ссылок на функции BlobGetSegment и BlobPutSegment, в ibase.h это typedef struct blobcallback. Через остальное оно не работает. Т.е. работает, но "внутри сервера", куда udf доступа нет. Что там у вас за TBlob - хрен его знает, скорее всего совсем не то, что надо. см. http://www.ibase.ru/files/download/blobsaveload.zip Впрочем, оно тоже теоретически могло устареть, это надо сверять с ibase.h последних версий FB. Вся информация, что касается UDF и BLOB на этом сайте, (да и на многих других сайтах) в конце концов произрастает от статьи на IBASE.RU , так что TBlob был правильным. За ссылку в ответе спасибо, сделал на этом материале работающую процедуру: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
однако выяснилось, что при размере BLOB приближающимся к 32к выход из цикла по условию until EndOfBLOb = True происходит, а весь BLOB до конца не вычитывается, остаётся "хвостик" Коллега по работе предложил немного изменённую процедуру: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 17:56 |
|
Прошу помощи по UDF
|
|||
---|---|---|---|
#18+
zeon11, зачем вы так пишите Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 18:55 |
|
|
start [/forum/topic.php?fid=40&msg=39908693&tid=1560482]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 257ms |
0 / 0 |