|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Такая проблема. Написал в Delphi 10.2.3 Tokio библиотечку с набором UDF для Firebird. Через хост-приложение (с кнопками, вызывающими эти UDF) оттестировал - все работает. функции импортировал в Firebird. Обычные простые функции вызываются и работают "на ура", но есть одна, которая по моей задумке должна отправлять мейлы. Написал ее с использованием компонент из пакета Indy. Создаю их динамически (те, какие нужны). Она также успешно вызывается из Firebird. И вот тут проблема: при вызове метода Connect у экземпляра TIdSMTP возникает исключение "Access violation at address 00000000045AC115 in module 'FirebirdUDFs.DLL'. Read of address FFFFFFFFFFFFFFFF". И не могу понять почему, ведь под хост-приложением работает. Кто что подскажет? Чего не хватает этой библиотеке? Заранее благодарю за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 14:17 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaКто что подскажет? Подсказываю: используй отладчик, Люк. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 14:19 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
31.01.2019 14:17, harisma пишет: > ...UDF для Firebird. > есть одна, которая по моей задумке должна отправлять мейлы... УПЕЙ СЕПЯ АП СТЕНУ!! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 14:22 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Эту бы энергию, да в мирное русло. Это в каком страшном сне должна привидиться отсылка почты из УДФ. особенно весело будет запускать сервер на линуксе с подобной УДФ. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 15:09 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Наверное, на триггер навесил Апдейт 100500 строк Почтовый сервер в шоке. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 16:32 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
WildSeryНаверное, на триггер навесил Апдейт 100500 строк Почтовый сервер в шоке. Ну, во первых, никто ничего никуда еще не навешивал, только тестировал возможность в принципе что-то подобное реализовать. Мимопроходящий УПЕЙ СЕПЯ АП СТЕНУ!! Очень смешно и не остроумно.... Ivan_Pisarevsky Это в каком страшном сне должна привидиться отсылка почты из УДФ А что тут такого странного и страшного? Между прочим, существуют такие коммерческие библиотеки, которые реализуют данный функционал. Но мне хотелось таковое самому реализовать. Как критиковать и насмехаться над задачей - так каждый первый, а как помочь да подсказать - так никого нет. Печально :( ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 16:56 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
31.01.2019 16:56, harisma пишет: > А что тут такого странного и страшного? Между прочим, существуют такие коммерческие библиотеки, которые реализуют данный функционал. Но мне хотелось таковое самому реализовать. > Как критиковать и насмехаться над задачей - так каждый первый, а как помочь да подсказать - так никого нет. Печально :( НЕ НАДО ТАК ДЕЛАТЬ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:01 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaКак критиковать и насмехаться над задачей - так каждый первый, а как помочь да подсказать - так никого нет. Исходники библиотеки - у тебя. Падает она у тебя. Соответственно и отлаживать - тоже тебе. Или ты думаешь, что у кого-то есть такие большие хрустальные шары, что в них можно разглядеть какую именно ошибку ты допустил в 17-й строке? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:06 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaпомочь да подсказатьПиши информацию о письмах в табличку. Табличку разгребай внешним сервисом (обычная программа, которая может быть как на самом хосте, так и на любом другом). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:08 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
автор но есть одна, которая по моей задумке должна отправлять мейлы. проктостоматологи аплодируют стоя ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:17 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaКак критиковать и насмехаться над задачей - так каждый первый, а как помочь да подсказать - так никого нет. Печально :( Выдохни. Тебе уже правильно сказали - ты бы код дал посмотреть, без него по такой ошибке мы ничего внятно тебе не скажем. Хочешь слать письма через UDF - да ради бога, мало ли что тебе нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 21:39 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
GallemarharismaКак критиковать и насмехаться над задачей - так каждый первый, а как помочь да подсказать - так никого нет. Печально :( Выдохни. Тебе уже правильно сказали - ты бы код дал посмотреть, без него по такой ошибке мы ничего внятно тебе не скажем. Хочешь слать письма через UDF - да ради бога, мало ли что тебе нужно. Вот это уже более адекватный ответ. Код дать - то без проблем. Странно то, что через апликацию работает, а когда вызываю из IBExpert - крешит. Причем может быть как Access violation, так и Socket Error Connection timeout Код: 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 10:24 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harisma, т.е. ты считаешь что LMsg грохать за собой не надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 10:34 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Симонов Денисharisma, т.е. ты считаешь что LMsg грохать за собой не надо? Надо, просто я, копируя и чистя код, чтоб вставить сюда на форум, случайно эту строку удалил, но ваш ответ не по теме. Креш возникает в строке smtp.Connect, а она раньше, чем место, где я разрушаю объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 10:41 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harisma, по теме 1. надо проверять готова ли ваша библиотека к многопоточному доступу. Судя по всему нет. 2. любое исключение не должно выходить за пределы вашей UDF (это не UDR где оно может быть обработано и преобразовано к ошибке Firebird) 3. Показать сюда как ваша UDF объявлена в Firebird 4. Перечитать http://www.ibase.ru/udf_ok/ и http://www.ibphoenix.com/files/Writing-External-Functions.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 11:04 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaAHost: PAnsiChar; APort: longint) тут ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 11:05 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Симонов ДенисharismaAHost: PAnsiChar; APort: longint) тут ошибка Ок. Спасибо. Да, согласен. Тут ошибка, а именно, Код: pascal 1.
должен быть объявлен как Код: pascal 1.
. Тогда внутри функции порт имеет нужное значение и ошобка таймаута не возникает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 13:58 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
harismaошобка таймаута не возникаетОшибка тут в подходе. Скармливать письма надо исходя из лимитов почтаря. Превысил лимит, получил ошибку, толком не обработал и сервер ФБ упал. Нафиг вообще эта костыльная схема с УДФ? Как из УДФ не превысить кол-во писем в час кол-во в сутки? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 14:25 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Прикольно, а что, действительно, в UDF нельзя передавать целые по значению? Или аффтар просто не до конца идентифицировал грабли?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 14:30 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Vlad F, ну ты документацию по написанию UDF читал? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 14:48 |
|
TIdSMTP в UDF для Firebird
|
|||
---|---|---|---|
#18+
Симонов Денис, И не пытался даже.)) Но я же не спорю, вы так, на пальчиках, кратко.)) Зато я реализовывал то, что он творит ввиде внешнего, с многочисленными параметрами, настраиваемого под разные почтовые клиенты, с иконкой в трее, руководством пользователя и т.д. и т.п., внешнего сервиса. Который, как правильно советовали, исполнял соотв. задания из специальной таблички в БД.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 14:58 |
|
|
start [/forum/topic.php?fid=40&msg=39767983&tid=1560823]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 564ms |
0 / 0 |