|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_, Про ошибки я забыл описать. Но тут суть именно в этой реализации IStatus реализован как бросающий исключение FbException. Т.е. для методов в которые передаётся IStatus будет сгенерировано исключение в случае ошибки, и выполнение будет немедленно прервано. Стандартные исключения Delphi тоже будут автоматически перехвачены с isc_random в статус векторе. Генерировать ошибки с другими кодами надо постараться Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
_Vasilisk_Понятно. Ну тогда хотя бы указать, что undocumented и делайте так вообще-то там всё не документировано. Есть только примеры. Так что всё что там написано не есть истина в последней инстанции. Это предмет моих исследований в области UDR. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 17:46 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Я не знаю, насколько это интересно широкой общественности, но для меня стало открытием и стоило часа отладки, чтобы понять, что для NUMERIC(9,2) нужно в IMetadataBuilder указывать отрицательный Scale -2. Передавая 50.12 и указывая положительный Scale 2, я в UDR получал значение 0. И только указав -2 получил 5012 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:20 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_Я не знаю, насколько это интересно широкой общественности Я не знаю насколько широкая общественность читала старый, ещё интербейзовский, API Guide. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:53 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov старый, ещё интербейзовский, API Guide. Мне, как человеку не работавшим ранее напрямую с API разбираться с ним крайне сложно. Описания того же IExternalContext я не нашел вообще нигде в интернете ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 13:23 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Документация - традиционно слабая сторона птицы. Влад и Адриано в таких случаях говорят "читайте исходники, там всё написано". Алекс говорит "задавай вопросы в девеле", но отвечает на эти вопросы через раз. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 13:28 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_Описания того же IExternalContext я не нашел вообще нигде в интернете Это у Дениса надо спросить. Потому что в http://www.ibase.ru/files/firebird/udr.pdf оно (и не только) часто упоминается, а в http://www.ibase.ru/files/firebird/fbapi.html ничего похожего нет (даже слова context). p.s. я с этим вообще не разбирался, но че-то не очень понимаю, почему firebird.pas не входит в поставку, и его надо "генерить" через CLOOP. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:14 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdvче-то не очень понимаю, почему firebird.pas не входит в поставку, и его надо "генерить" через CLOOP. Потому что клоп не включён в процедуру сборки под винду. Потому что он под ней не собирается. Потому что кому-то было лень это фиксиить. Он входит в пакет с исходниками, поскольку тот собирается на линуксе. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:18 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdv, он есть в дистрибутивах под Linux. Почему не попадает в снапшоты винды хз ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:18 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdv так это только перевод из firebird/doc/Using_OO_API.html От себя я там ничего не писал, ну разве что про клопа ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:24 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdv не очень понимаю, почему firebird.pas не входит в поставку, и его надо "генерить" через CLOOP. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 13:32 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_, возможно это правили. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 13:53 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_К слову, в 3.0.5 он обнаружился в папке include\firebird в zip с офсайта ничего такого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 14:04 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdv в zip с офсайта ничего такого нет. верно, в архивчик его положить забыли от слова совсем ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 17:49 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
kdv в zip с офсайта ничего такого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 18:06 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_ kdv в zip с офсайта ничего такого нет. я тут по ходу дела проверил - ни в одном архиве с исподниками, начиная с 1.0.3, firebird.pas нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 18:17 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Док, клооп не настолько древний. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 21:18 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Кстати, Денис, добавь в сабж копирайты и лицензию какую-нибудь, а то статус непонятен, Ривз колеблется с переводом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:14 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
DS> Ривз колеблется с переводом. Боится нелицензионности что ли? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:20 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну копирайты в примерах и тексте я могу поставить. А вот что там за лицензия хз ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:30 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Симонов ДенисА вот что там за лицензия хз Два напрашивающихся варианта: IDPL и Public Domain. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:36 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#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. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:39 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Симонов Денисчто-то типа вот этого что ли? Да, только я бы лицензию тут же положил в виде отдельного файла, а то URL-ы имеют свойство протухать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:47 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что для каждого вызова процедуры/функции/триггера создается свой экземпляр IExternalProcedure/IExternalFunction/IExternalTrigger? Или хотя бы обращение к одному экземпляру не идет одновременно из разных потоков? Другими словами, я могу безболезненно сохранить аргументы, передаваемые в IExternalProcedure.open в поля класса и безопасно к ним обращаться из любого места. А не передавать нужные мне параметры как аргументы в мои методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 14:39 |
|
Написание UDR на Pascal
|
|||
---|---|---|---|
#18+
_Vasilisk_, нет, не правильно. Экземпляр процедуры создаётся в момент её загрузки в кэш метаданных авторМетод newItem вызывается для создания экземпляра внешней процедуры, функции или триггера. Создание экземпляров UDR происходит в момент её загрузки в кэш метаданных, т.е. при первом вызове процедуры, функции или триггера. В настоящий момент кэш метаданных раздельный для каждого соединения для всех архитектур сервера. Кэш метаданных процедур и функция связан с их именами в базе данных. Например, две внешние функции с разными именами, но одинаковыми точками входа, будут разными экземплярами IExternalFunction. Точка входа состоит из имени внешнего модуля и имени под которым зарегистрирована фабрика. Как это можно использовать покажем позже. Если у тебя процедура выбора, передавай сохраняй аргументы в экземляр класса реализующий IExternalResultSet, если нет то можешь создать свой отдельный класс, раз там такая сложная логика ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 15:18 |
|
|
start [/forum/topic.php?fid=40&msg=39967902&tid=1560331]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 493ms |
0 / 0 |