Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
Хочу представить для обсуждения предварительную версию статьи про написание UDR на Pascal с примерами.
Исходные коды примеров и текст статьи вы можете найти по ссылке https://github.com/sim1984/udr-book

В настоящий момент материал может содержать множество ошибок, часть моментов не раскрыта.

Пишите предложения, замечания и вопросы.
10 мар 19, 17:34    [21828746]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
m7m
Member

Откуда: Украина, Мариуполь
Сообщений: 1322
Симонов Денис,
+ замечания

стр.6
Подсказка
Если вы не знаете как уничтожается объяет посмотрите его иерархию, если в ней есть
интрефейс IReferenceCounted
.
---------
и предложение заканчивается. читая следующее предложение все становится ясным, однако осадок остается
---------
Для интерфейсов с подсчётом ссылок, по завершению
работы с объектом необходимо уменьшить счётчик ссылок вызовом метода release().

стр.7
UDR могут быть добалены или удалены из базы данных с помощью DDL комманд подобно
тому как вы добавляете или удаляете обычные PSQL процедуры, функции или триггеры. В
этом случае

---------
ожидаю что к моменту прочтения этого куска должно быть ясно к чему он относится (читая дальше понимаю что к триггерам, однако малость поздно)
--------
вместо тела триггера указывается место его расположения во внешнем модуле с
помощью предложения EXTERNAL NAME.
Рассмотрим синтаксис этого предложения, оно будет обим для внешних процедур, функций и
триггеров


стр.67
Поскольку размер данных типа BLOB может быть очень большим, то данные BLOB читаются
и пишутся порциями порцияи (сегментами)

стр.70
Примечание
Тип перечеление TFBCharSet не входит в Firebird.pas.


стр.71
BLOB читается порцияи (сегментами),


стр.73
Работоспособность процедуры можно проверисть слеющим образом:


стр.80
Если ваша внешняя процедура, функция или триггер должна получать данные из собственной
базы данных не через входные аргументы, а например через запрос, то вам поребуется
получать контекст текущего соединения и/или транзакции


стр.80
В
этом случае нам придётся работать с интерфейсом IMessageMetadata. Вы уже сталкивались
с ним ранее, но на этот раз придётся работать с ним более основательно
-----
Наверное все-же не "Вы" а "Мы"
-----


Стр.82
Дополнительный метод MakeScaleInteger предназначен для преоьразование
масштабируемых чисел в строку
11 мар 19, 10:02    [21828907]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
m7m,

да грамматических ошибок там много, надо словарик русский всё таки поставить в oxygen, а то как компьютер поменял руки не дошли.
Спасибо
11 мар 19, 10:16    [21828914]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
sasha27
Member

Откуда: Москва
Сообщений: 168
Симонов Денис,

+

стр. 4
UDR предоставляют получить контекст текущего соединения или транзакции для того чтобы
выполнять некоторые манипуляции с текущей базой данных в этом контексте

Не звучит... Наверное должно быть позволяют

стр. 10
module name Имя внешнего модуля, в котором расположена процедурв.

стр. 19
В данном случе необходимо экспортировать всего одну функцию firebird_udr_plugin,
которая является точкой входа для плагина внешних модулей UDR. Реализая этой функции
будет находится в модуле UdrInit.

стр, 20
Особенности Free Pascal
...
Директива {$H+} включает поддержку длинный строк.



11 мар 19, 14:15    [21829195]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27939
sasha27
Не звучит... Наверное должно быть позволяют

"В UDR доступен контекст текущего соединения или транзакции для того чтобы выполнять некоторые манипуляции с текущей базой данных в этом контексте."
11 мар 19, 16:26    [21829396]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Vlad F
Member

Откуда:
Сообщений: 778
Симонов Денис
да грамматических ошибок там много, надо словарик русский всё таки поставить в oxygen, а то как компьютер поменял руки не дошли.

Денис, если не сложно, на каждую рекламацию давай однозначный ответ, когда именно она будет исправлена. Чтобы желающим в свою очередь присоединиться по два раза не вставать.
11 мар 19, 16:37    [21829435]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
Vlad F,

грамматику я сегодня вечером посмотрю
11 мар 19, 16:46    [21829450]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
исправил
11 мар 19, 22:10    [21829804]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
sasha27
Member

Откуда: Москва
Сообщений: 168
Денис, вот тут осталось еще:

стр. 10
Таблица 2.2. Некоторые параметры внешней процедуры
червертая строка в таблице, в поле описание

module name | Имя внешнего модуля, в котором расположена процедурв
11 мар 19, 22:43    [21829826]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
sasha27,

поправил
11 мар 19, 22:59    [21829838]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Док
Member

Откуда: Казань
Сообщений: 6131
стр. 5 В данном руководство не включает полного описания Firebird API.

стр.5 (запятая) ... ознакомится с ним в каталоге документации, распространяемой ... и ... перевод данного документа, доступный...

стр. 6 (запятые) Если вы не знаете, как уничтожается объект, посмотрите его иерархию...

стр.7 (вероятно, нужна запятая) с помощью DDL команд подобно тому, как вы добавляете
стр.7 (вероятно, нужна запятая) В этом случае, вместо тела триггера...
стр.7 ...оно может быть использовано внешнем модулем...
12 мар 19, 08:43    [21829937]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
Док,

это исправил.

У кого-нибудь есть замечания по содержимому? Что не понятно описано?
19 мар 19, 21:43    [21837794]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Vlad F
Member

Откуда:
Сообщений: 778
Симонов Денис,

У меня, с вашего позволения, еще будут. Не спеши т.о. выпускать.
19 мар 19, 22:49    [21837866]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
Vlad F,

да без проблем
19 мар 19, 22:54    [21837870]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1049
Я с вашего позволения через полгодика к этой теме обращусь и почитаю.
Я чую, где это может пригодиться в своих существующих проектах.
20 мар 19, 08:45    [21838028]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Vlad F
Member

Откуда:
Сообщений: 778
o_v_a,

Ты лучше сейчас почитай. Денису, имхо, надо помочь ее вычитать.
20 мар 19, 09:44    [21838067]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1049
Семантически я всё равно не найду косяков, потому что не в теме. Надо ж пробовать...
Орфографию и пунктуацию если только.
20 мар 19, 10:40    [21838140]     Ответить | Цитировать Сообщить модератору
 Re: Написание UDR на Pascal  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 59778
Я заметил пару мелких ошибок, но ничего серьёзного.

Posted via ActualForum NNTP Server 1.5

20 мар 19, 11:15    [21838196]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить