|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Как из UDF вернуть строку BY DESCRIPTOR? Как выделить память под саму структуру и под данные? С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:26 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
19.08.2019 17:26, _Vasilisk_ пишет: > Как из UDF вернуть строку BY DESCRIPTOR? Как выделить память под саму структуру и под данные? дык статья же есть, с примерами Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:28 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящийдык статья же есть, с примерами Эта ? Набор функций IFNULL и возвращаются те же параметрі, что были переданы. Вот пример оттуда Код: pascal 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:32 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Оттуда же Код: pascal 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:36 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:43 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Симонов Денис http://www.ibphoenix.com/files/Writing-External-Functions.pdf Нашел такоеFREE_ITIf the parameter is returned by descriptor, however, we have two elements that were created dynamically: the descriptor and the data. Firebird 1 only freed the data, making it useless for most needs. Firebird 2 deallocates both the descriptor and the dataТеперь бы понять как ведет себя Interbase ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 17:59 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_Нашел такое И тут же выкинь. С FREE_IT ты вернёшь только строку как значение. Дескриптор со строкой можно вернуть исключительно через возврат значения во входном параметре. Ищи недокументированную фичу RETURNS PARAMETER. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 18:34 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_Теперь бы понять как ведет себя InterbaseА что - поддержка не отвечает ? В документации не расжёвано ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 19:08 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovС FREE_IT ты вернёшь только строку как значение.Я думал вызвать дважды ib_malloc. Один раз для структуры, второй раз для данных. Но сейчас увидел, что BY DESCRIPTOR вернуть результат нельзя. Значит вопрос с выделением памяти под структуру решился. Будем надеяться (сейчас буду проверять), что FREE_IT освободит память под данные ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 19:52 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
hvladВ документации не расжёвано ?Нет. Там две странички на все ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 19:52 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Объявляю функцию Код: sql 1. 2. 3. 4. 5.
Реализация Код: pascal 1. 2. 3. 4. 5.
Вызываю Код: sql 1.
Видим в логе, что AParam = ARes, dsc_dtype = 9 (dtype_long), PLong(dsc_address)^ = 0 ЧЯДНТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 20:33 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
И при вызове еще и ошибка Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. message length error (encountered 16, expected 20).Вызов Код: sql 1.
дает тот же эффект ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 20:40 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_ЧЯДНТ?Проверял на IB2009. Посмотрел на IB XE3 x64 - адреса передаются разные и входной параметр корректен. А FREE_IT с конструкцией Код: sql 1.
объявить не разрешает. При таком объявлении Код: sql 1. 2. 3. 4. 5.
Token unknown - line 3, char 13. BY. Если объявить так Код: sql 1. 2. 3. 4. 5.
то второй параметр приходит с типом dtype_long и dsc_length = 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 21:09 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_, И что, есть действительно серьезные основания пытаться прошибать лбом стены именно на IB? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 21:48 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_А FREE_IT с конструкцией RETURNS PARAMETER 2 объявить не разрешает. что за ересь - free_it только для возвращаемых значений, где память аллокирована внутри udf через ib_util_malloc. returns parameter означает вернуть ссылку на входной параметр. Входные параметры всегда аллокируются ИБ ФБ самостоятельно, ДО вызова udf. Поэтому free_it тут вообще не аллё. p.s. в ИБ периодически что-то ломают. например, давно поломали вывод page reads/writes для isc_database_info. В результате, например, ИБЕ после выполнения запроса для reads/writes/fetches выводит какую-то ахинею. Правда, может там что поменяли, о чем ИБЕ не знает, но... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 21:56 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
kdv В результате, например, ИБЕ после выполнения запроса для reads/writes/fetches выводит какую-то ахинею. это случается и для Firebird. Правда не понятно при каких условиях ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 22:09 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Просто для FB нынче есть куда как более интересные альтернативы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 22:20 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Vlad FИ что, есть действительно серьезные основания пытаться прошибать лбом стены именно на IB?Заказчик. На FB не хочет переходить принципиально kdvчто за ересь - free_it только для возвращаемых значений,Исходный вопрос был - как возвратить строку? Как под нее выделить память и кто ее должен освободить kdvВходные параметры всегда аллокируются ИБ ФБ самостоятельноЭто замечательно. А память под данные? Сейчас попробовал такой вызов Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
все равно выходной параметр dtype_long и длина 4 байта ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 14:54 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_Исходный вопрос был - как возвратить строку? Строку вернуть просто. Вернуть её BY DESCRIPTOR - совсем другой вопрос. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 14:56 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСтроку вернуть просто.Отож. Мне нужно вернуть или строку или NULL. Из-за этого и возня ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:04 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
20.08.2019 15:04, _Vasilisk_ пишет: > Отож. Мне нужно вернуть или строку или NULL. Из-за этого и возня а обернуть в NULLIF(UDF_str(), '') ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:06 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящийа обернуть в NULLIF(UDF_str(), '') ?Хотелось по людски сделать. Сейчас еще проверю на XE7, а потом забью ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:11 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_Сейчас еще проверю на XE7,Не взлетело. То же, что и на XE3 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:19 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
20.08.2019 15:19, _Vasilisk_ пишет: > Не взлетело. То же, что и на XE3 возьми попробуй пример из fdudf, что идёт в комплекте с FB. каталог examples, функции sNvl, sNullif и т.п. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:29 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящийвозьми попробуй пример из fdudf, что идёт в комплекте с FB. каталог examples, функции sNvl, sNullif и т.п.Я же уже отвечал 21952721 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:31 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
видимо таки нужно писать в саппорт. х.з. какие неонки у них там погорели... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:38 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящийвидимо таки нужно писать в саппорт.Мне тебе рассказать про багтреккинг Эмбаркадеры? Мимопроходящийх.з. какие неонки у них там погорели...Я перепробовал три последних версии. Похоже, что неонки никогда и не работали ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:47 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
20.08.2019 15:47, _Vasilisk_ пишет: > Я перепробовал три последних версии. Похоже, что неонки никогда и не работали вообще-то фича FB-шная. можно копнуть поглубже. если в IB6.5 не фурычит, то наверное напрасны ожидания. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:52 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящий, https://quality.embarcadero.com/browse/IBP-34 https://quality.embarcadero.com/browse/IBP-37 https://quality.embarcadero.com/browse/IBP-35 три шоу-стоппера ХЕ7, update 6. Какой-то из них "не могли воспроизвести", хотя я воспроизвел без проблем на 4х разных компах. В итоге ... выпустили IB 2017, а апдейтов к XE7 больше не выходило. А это значит, что "клиент должен сделать апгрейд (платный) до 2017, надеясь, что эти ошибки исправлены там". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:57 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящийвообще-то фича FB-шная. Вот ее описание в IB А вот пример декларации Код: sql 1. 2. 3. 4. 5. 6.
Как видишь, синтаксис немного отличается от FB-шного ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 15:59 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
20.08.2019 15:59, _Vasilisk_ пишет: > Как видишь, синтаксис немного отличается от FB-шного ну, пощупай на ихнем 2017-м, как говорит kdv Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:03 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk__Vasilisk_Сейчас еще проверю на XE7,Не взлетело. То же, что и на XE3Ошибся. Проверял на 2017 (WI-V13.3.0.328) Итого: 2009: адреса входного и выходного параметров совпадают. Получить значение входного параметра невозможно XE3, 2017 - адреса разные и входной параметр приходит, но выходной имеет тип long с выделенными 4 байтами ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:07 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
kdv, жаль, что я ту базу test2.ib кокнул на ЯД осенью 2018 года. А на дисках не могу найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:12 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
kdv, нашел! Надо кому? Выложу на ЯД опять. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:29 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
20.08.2019 16:29, kdv пишет: > нашел! Надо кому? Выложу на ЯД опять. дык, это ж твой файл. откуда ж нам знать что там? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:33 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_Как видишь, синтаксис немного отличается от FB-шного Ну так чего ж ты в 21952909 удивляешься, что она ругается на FB-шный синтаксис?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:40 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНу так чего ж ты в 21952909 удивляешься, что она ругается на FB-шный синтаксис?..Потому что на тот момент еще не рассмотрел отличий. Был не прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 16:47 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
Мимопроходящий, там файл для воспроизведения багов ИБ ХЕ7, в соответствии с моими багрепортами. Не надо - не выложу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 18:01 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
kdv https://quality.embarcadero.com/browse/IBP-34 Похоже? https://quality.embarcadero.com/browse/IBP-80 internal gds software consistency check (inconsistent LATCH_mark call (295), file: cch.c line: 7070)Это я репортил уже на 2017 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 18:36 |
|
Возвращение результата BY DESCRIPTOR
|
|||
---|---|---|---|
#18+
_Vasilisk_, да этот LATCH у них лез уже давно, я так и не знаю, вывели или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 20:48 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560607]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 284ms |
total: | 444ms |
0 / 0 |