|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Ежу непонятно, зачем нужны методы, которые не используются, чтобы путаться проще было? у Явы и совр. Delphi у объектов есть функция getHash(). Думаю и тут можно было бы сделать ф-ию типа getFormatHash() и дёргать getOffset только для новых форматов. Впрочем, как сделано - так сделано. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 18:33 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов Денисполучение указателей по смещениям будет медленней чем через фиксированную структуру Не факт. Через фиксированную структуру указателей на современных процессорах (у которых мегабайтные кэши на порядок быстрее ОЗУ) будет не хуже. Вспомни, например, как статически линкованные DLL подсоединяются на ассемблерном уровне при загрузке EXE. И в любом случае, всё снова упирается в вопрос "что мы хотим сделать?" Если максимально быстрый интерфейс на C++ - это один выбор. Если кросс-язычный интерфейс с максимально лёгкой интеграцией в широкий спектр языков - то другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 18:37 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
AriochЕжу непонятно, зачем нужны методы, которые не используются, чтобы путаться проще было? в каком смысле не используются? Хочешь используй, хочешь нет. Arioch, давай так. Ты попробуешь написать маленькую UDR на Delphi. Доведёшь её до работоспособного состояния, а потом продолжим беседу. Можешь даже с кусками кода, которые у тебя нарекания вызвали. А то у меня такое ощущение, что "Пастернака не читал, но осуждаю". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 22:09 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисТы попробуешь написать маленькую UDR на Delphi. Доведёшь её до работоспособного состояния, а потом продолжим беседу. +1 и чтобы среди передаваемых типов ещё и блоб был :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 09:17 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
afgm, тебе для каких целей? Если хочешь сам разобраться пиши, поможем ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 09:42 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов Денистебе для каких целей? Если хочешь сам разобраться пиши, поможем Попросил блобы, чтобы усугубить ситуацию "удобства" API. Я уже делал несколько подходов и не восторге от нового API. Постоянно не кричу на всех углах, только потому, что не знаю как сделать лучше. Была благая идея сделать обёртку с кодогенерацией, но каждый раз вскипаю. С блобами, кстати, как-то сразу не задалось. В Java обёртке проблемы. Тикет висит. Если не путаю, то в первой версии .net-обёртки они не поддерживались. Немного в сторону. Если уж продолжать тему API для Delphi/Lazarus изложу своё видение. Нужно сделать кодогенератор из файла с простым описанием упрощённого SQL для UDR. По нему генерируем скрипт подключения к БД и базовый класс самой UDR. В коде наследуемся и реализуем методы. + Нужны хелперы для блобов (и теперь для decfloat). Для реализации всего этого нужны примеры нв Delphi со всеми видами вызовов (функция, процедура, триггер) и типов данных. Нужны все виды возврата (скаляр из функции, набор из процедуры). Понятно, что "Делфи тут никто не знает", но вполне можно сделать костлявый прототип и силами сообщества допилить до ума, кода там немного. PS. Почему вообще блобы. Это единственный тип данных, который больно обрабатывать на сервере. А городить огород, если всё влезло в хранимки, не очень хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:21 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов Денисв каком смысле не используются? Хочешь используй, хочешь нет Это называется "угадайка". Есть такая вешь, как single responsibility Dimitry Sibiryakovвесь код Firebird игнорирует значения, возвращаемые getOffset() и getNullOffset() Таким образом, писать эти функции бесполезно - и включать в интерфейс, который должен был быть написан 3-й стороной - не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:28 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
afgm, ну справедливости ради. В UDF с блобами работать ничуть не удобнее чем в UDR. Я сейчас активно копаю тему UDR и собираюсь написать мануал по их написанию на Delphi/Lazarus. Уже кое-что написано. Но очень много время занимают исследования, ибо эта тема практически не документирована. Во многих случаях код для написания одной UDR функции можно существенно подсократить до такой степени, что будет не сильно больше чем для UDF. decfloat можно перевести в Bcd если что, там есть специальных хелпер. Arioch, давай ты не будешь комментировать то в чём даже не пытался разобраться. Вот Dimitry Sibiryakov реально трогал новый API и имеет негативный опыт, поэтому его комментарии интересны. Ты же просто вводишь форумчан в заблуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:50 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ сейчас активно копаю тему UDR и собираюсь написать мануал по их написанию на Delphi/Lazarus. Уже кое-что написано. Но очень много время занимают исследования, ибо эта тема практически не документированаПрекрасно ! Обращайся, если нужно - может получится помочь ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 11:10 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ сейчас активно копаю тему UDR и собираюсь написать мануал по их написанию на Delphi/Lazarus. Уже кое-что написано. Может github? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 11:28 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
afgm, выложу, но при условии не ссылаться туда пока всё не будет доделано. А то ещё скажут, что я плохому научил. Сам ещё разбираюсь. hvlad, спасибо. Куда лучше вопросы задавать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 11:43 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисКуда лучше вопросы задавать?Пиши мылом, а там посмотрим :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 11:48 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов Денисвыложу, но при условии не ссылаться туда пока всё не будет доделано. А то ещё скажут, что я плохому научил. Сам ещё разбираюсь. Ок. Мыло в профиле. Ну и критика Влада, даже на то "что удалось", тоже желательна. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 12:02 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисВ UDF с блобами работать ничуть не удобнее чем в UDR. Вообще-то удобнее. Тебе в UDF сразу дают хэндл блоба и функции работы с ним, а в UDR для получения и того и другого придётся сделать несколько прыжков в ширину. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 12:48 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов ДенисAriochсколько у нас Delphi-библиотек на тупом неправильном устаревшем API тянущемся с прошлого века это кто тебе сказал что это API тупое и устаревшее? Плюнь ему в глаз. Вы это, продолжайте писать что-ли. Так увлекательно читать. Подброшу на вентилятор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 10:42 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий, казалось бы причём тут новое API vs старое? Проблемы fbclient если они есть общие для обоих. И какое отношение имеет провайдер к обсуждаемому далее вопросу UDR vs UDF? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 11:17 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
afgm, маленький эксперимент с BLOB. Пока не сильно напрягался с оптимизацией Код: sql 1. 2. 3. 4. 5. 6.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 1.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: plaintext 1.
Код: sql 1. 2. 3. 4. 5. 6. 7.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 23:13 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Симонов Денис, вполне себе шустро. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 08:57 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
afgm, и это ещё сделано максимально просто без попыток оптимизации. Сейчас весь блоб тупо посегментно загоняется TStringStream, а затем делается Stream.DataString.Split([delimiter], ...), и уже по полученному массиву возвращаются данные. Из-за этого в частности не работает конвеерная выдача результатов. По идее можно было читать и обрабатывать сегменты по мере выдачи результата, и чем то более эффективным чем встроенный split ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2018, 10:23 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
Адриано ответил, что ALTER UDF в PSQL-функцию - это совершенно нормально и так и задумывалось. Тем не менее, его не смущает, что при попытке дропнуть функцию - сообщается, что это таки UDF. Денис Симонов, такой финтифлюх отражен в документации? Я что-то не припоминаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 01:46 |
|
Internal и external function с одинаковым названием
|
|||
---|---|---|---|
#18+
CyberMax, почитал. Там какие-то споры что есть UDF. Формально Адриано прав все функции определённые пользователем являются UDF. Но для тех кто работал с Firebird/Interbase N лет UDF это именно внешние функции определённые как DECLARE EXTERNAL FUNCTION. Если я правильно понимаю терминологию, то сейчас их надо называть Legacy UDF (тем более что в 4.0 уже deprecated). Возможно в документации надо подправить терминологию. UDF - User Defined Function - любая функция определённая пользователем UDR - User Defined Routine - любая подпрограмма определённая пользователем (функция/процедура/триггер) Функции бывают: - встроенными (IIF, CHAR_LENGTH ...) - определённые пользователем (UDF) UDF бывают: - внешние - внутренние (или PSQL функции) Внешние UDF бывают: - Legacy (DECLARE EXTERNAL FUNCTION) - обычные (CREATE FUNCTION ... EXTERNAL) CyberMaxДенис Симонов, такой финтифлюх отражен в документации? нет ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 10:07 |
|
|
start [/forum/topic.php?fid=40&msg=39697572&tid=1560985]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 178ms |
0 / 0 |