Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Написание UDR / 25 сообщений из 94, страница 1 из 4
22.12.2015, 19:54
    #39135082
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Добрый день!
Подскажите где что можно посмотреть про UDR в FB3, не знаю с какой стороны подойти.
У кого-то с "не разработчиков" есть опыт их написания?
Как воспрользоваться примером в ...\examples\udr ?

P.S. Начинаю посматривать в сторону 3-ки x64 SS, будет необходимость избавится от х86 UDF
...
Рейтинг: 0 / 0
22.12.2015, 19:59
    #39135083
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs,

для начала определись на каком языке ты хочешь писать UDR.
...
Рейтинг: 0 / 0
22.12.2015, 20:21
    #39135102
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Нет, сначала лучше всё-таки проверить, нет ли встроенных функций с тем же функционалом как
у замещаемых UDF.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.12.2015, 20:31
    #39135110
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Dimitry Sibiryakov,

ну это само собой
...
Рейтинг: 0 / 0
22.12.2015, 21:11
    #39135144
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов Денисдля начала определись на каком языке ты хочешь писать UDR.а там что, на java уже можно ваять ?!
...
Рейтинг: 0 / 0
22.12.2015, 21:16
    #39135147
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Таблоид,

официально пока нет. Но Адриано чего-то там упорно мастерит. На C++ и Delphi можно
...
Рейтинг: 0 / 0
22.12.2015, 22:23
    #39135186
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов Денис, C++ и Delphi в отношении vtable используют один и тот же ABI. И не только они, но и древнююющий Borland Tasm времен NT4.0 для flat модели также совместим с точки зрения виртуальных методов.
...
Рейтинг: 0 / 0
22.12.2015, 22:33
    #39135192
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
DBConstructorC++ и Delphi в отношении vtable используют один и тот же ABI. И не
только они, но и древнююющий Borland Tasm времен NT4.0 для flat модели также совместим с
точки зрения виртуальных методов.
Учитывая, что это стандарт COM, ничего удивительного. Но есть ещё совершенно безумный FPC...

PS: Откуда вдруг объекты в ассемблере?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.12.2015, 22:51
    #39135201
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Dimitry SibiryakovPS: Откуда вдруг объекты в ассемблере?..
Borland TASM был весьма продвинутым. Там не только описывались классы, но и был реализован вызов функций без всяких муторных "mov ebp, esp", push/pop и далее по "тексту". Причем с учетом соглашений о вызовах. Что-то типа "invoke stdcall myfunc, eax, ebx, [myvar]". Точного синтаксиса, естественно, не помню, так как с тех пор прошло почти 20 лет.
Так что вполне можно было цеплять какую-нибудь cstdlib и во всю юзать стандартные сишные функции.
...
Рейтинг: 0 / 0
22.12.2015, 22:59
    #39135206
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Dimitry SibiryakovНет, сначала лучше всё-таки проверить, нет ли встроенных функций с тем же функционалом как
у замещаемых UDF.

Нет, таких UDF точно нет.
Может кто-то дать простенький пример на Delphi?
...
Рейтинг: 0 / 0
22.12.2015, 23:03
    #39135213
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs, держи 18594051 .
...
Рейтинг: 0 / 0
23.12.2015, 10:56
    #39135504
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
DBConstructorViktor_bs, держи 18594051 .
Спасибо.
Кхм, а функции сложения 2-х чисел на Delphi ни у кого нет
...
Рейтинг: 0 / 0
23.12.2015, 11:35
    #39135598
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs,

а на фига для этого UDR?
...
Рейтинг: 0 / 0
23.12.2015, 12:06
    #39135692
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов ДенисViktor_bs,

а на фига для этого UDR?
:)) Я пример прошу как это сделать.
А вообще нужно, например, переписать набор функций работы с полиномом или матрицей, запихнув их в пакеты с "человеческой" обработкой исключений. Это как минимум...
...
Рейтинг: 0 / 0
23.12.2015, 12:14
    #39135713
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs,

каких чисел? С плавающей точкой DOUBLE PRECISION или NUMERIC(n, m) или INTEGER?
...
Рейтинг: 0 / 0
23.12.2015, 12:19
    #39135726
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов ДенисViktor_bs,

каких чисел? С плавающей точкой DOUBLE PRECISION или NUMERIC(n, m) или INTEGER?
Та без разницы. Нужен пример функции, а не процедуры.
Так чтобы она скомпилилась и работала.
...
Рейтинг: 0 / 0
23.12.2015, 12:49
    #39135814
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs,

Вот тут лежит. Но рассчитан на Delphi XE5.
...
Рейтинг: 0 / 0
23.12.2015, 12:58
    #39135842
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Dimitry SibiryakovНо есть ещё совершенно безумный FPC...

Для него кстати есть пример COM-сервера ,но виджимо никому оказалось не надо, так и лежит почти никем не использованный
...
Рейтинг: 0 / 0
23.12.2015, 13:30
    #39135929
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Ariochно виджимо никому оказалось не надо
Вспоминая сколько мне пришлось доказывать, что (не) возврат интерфейса из функции в 64-х
разрядной версии это именно баг и именно FPC, я ничему не удивляюсь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.12.2015, 13:39
    #39135952
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Dimitry Sibiryakov,

кстати в FPC это UDR всё равно не компилируется
...
Рейтинг: 0 / 0
23.12.2015, 13:39
    #39135955
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов ДенисViktor_bs,

Вот тут лежит. Но рассчитан на Delphi XE5.
Спасибо!

А как ее подключить?
Переименовал в udr.dll и кинул в папку plugins.

При создании функции в IBExpert получаю
Error loading plugin UDR.
Standard plugin entrypoint does not exist in module C:\Firebird3\plugins/UDR.

Игрища с конфигом не помогли.
А вообще есть хоть какой-то драфт доки, кроме исходников Adriano?
...
Рейтинг: 0 / 0
23.12.2015, 13:40
    #39135956
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Hello, Симонов Денис!
You wrote on 23 декабря 2015 г. 13:40:23:

Симонов Денис> кстати в FPC это UDR всё равно не компилируетсяиз-за?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.12.2015, 13:41
    #39135960
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Viktor_bs,

ну дык в ошибке английским языком сказано что она должна лежать в plugins/udr
...
Рейтинг: 0 / 0
23.12.2015, 13:44
    #39135966
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Мимопроходящий,
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
...
	MessageMetadata = class(ReferenceCounted)
		const VERSION = 17;

		function getCount(status: Status): Cardinal;
		function getField(status: Status; index: Cardinal): PAnsiChar;
		function getRelation(status: Status; index: Cardinal): PAnsiChar;
		function getOwner(status: Status; index: Cardinal): PAnsiChar;
		function getAlias(status: Status; index: Cardinal): PAnsiChar;
		function getType(status: Status; index: Cardinal): Cardinal;
		function isNullable(status: Status; index: Cardinal): Boolean;
		function getSubType(status: Status; index: Cardinal): Integer;
		function getLength(status: Status; index: Cardinal): Cardinal;
		function getScale(status: Status; index: Cardinal): Integer;
		function getCharSet(status: Status; index: Cardinal): Cardinal;
		function getOffset(status: Status; index: Cardinal): Cardinal;
		function getNullOffset(status: Status; index: Cardinal): Cardinal;
		function getBuilder(status: Status): MetadataBuilder;
		function getMessageLength(status: Status): Cardinal;
...
	end;



константы внутри классов он не умеет переопределять. Возможно можно вывернуться, но для этого надо весь модуль FbApi.pas переписать. Или понять как Адриано автоматом генеририровал этот файл с помощью idl
...
Рейтинг: 0 / 0
23.12.2015, 13:47
    #39135975
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написание UDR
Симонов ДенисViktor_bs,

ну дык в ошибке английским языком сказано что она должна лежать в plugins/udr
Ложил, не помогло...
External engine UDR not found.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Написание UDR / 25 сообщений из 94, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]