|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Переношу код с oracle в FB 2.5 Столкнулся с использованием запроса с параметром в предложении select? Что-то вида Код: sql 1.
Вот в таком виде FB выдало ошибку "Data type unknown" Скормил ему требуемое приведение типа Код: sql 1.
Вопрос - может кто подскажет почему FB к этому придирается и может что посоветуете по синтаксису для подобного случая? ------------------------------------------------------ Удача - это когда желания совпадают с возможностями... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 14:34 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex TorinВопрос - может кто подскажет почему FB к этому придирается и может что посоветуете по синтаксису для подобного случая? Лично я посоветую не маяться фигнёй с получением от сервера информации, передаваемой ему с клиента. Бег на месте бессмыслен, поэтому просто убери этот параметр из запроса и используй клиентскую переменную везде, куда ты хотел засунуть возвращаемое значение. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 14:37 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
У датасета есть тфилды и событие онкалкфилдз и датасет умеет показывать не только поля полученные с сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 14:42 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAlex TorinВопрос - может кто подскажет почему FB к этому придирается и может что посоветуете по синтаксису для подобного случая? Лично я посоветую не маяться фигнёй с получением от сервера информации, передаваемой ему с клиента. Бег на месте бессмыслен, поэтому просто убери этот параметр из запроса и используй клиентскую переменную везде, куда ты хотел засунуть возвращаемое значение. Дмитрий, я и не думал маяться))) Это лишь упрощенный пример запроса... Что бы понять почему FB так себя ведет и как правильно написать в подобном случае синтаксически. Там же где это надо - там сложный union и в нескольких местах этот параметр используется в предложении where. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 14:50 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex Torin, потому что FB не может догадаться о типе параметра без пинка. cast к нужному типу и есть такой пинок ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 15:12 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex Torin, в where тип можно определить в большинстве случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 15:13 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Ну, и совсем правильно: select cast(:MyParam as bigint) as FieldName , Field1, ... FieldN from MyTable ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 16:26 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
alex_p_nНу, и совсем правильно: select cast(:MyParam as bigint) as FieldName , Field1, ... FieldN from MyTable ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:03 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Симонов ДенисAlex Torin, потому что FB не может догадаться о типе параметра без пинка. cast к нужному типу и есть такой пинок какой недогадливый FB ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:05 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex Torin, ок. я даю тебе параметр :p22. Какого он типа? Даже на клиенте, до присвоения значения параметру, он тоже неизвестен. Пока я не вызову Params[0].asInteger или что-то в этом роде. p.s. теперь смеяться можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:23 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex Torinselect cast(:MyParam as bigint), Field1, ... FieldN from MyTable select cast('Ёрш твою меть!' as bigint), Field1, ... FieldN from MyTable ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:56 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
kdvAlex Torin, ок. я даю тебе параметр :p22. Какого он типа? Даже на клиенте, до присвоения значения параметру, он тоже неизвестен. Пока я не вызову Params[0].asInteger или что-то в этом роде. p.s. теперь смеяться можно. Когда вы мне объясните с чем отождествить ваше "даю тебе", тогда я и отвечу на ваш вопрос! А про клиента не понял - а на кой FB знать тип параметра до присвоения ему значения))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 08:28 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
kdvp.s. теперь смеяться можно. Да тут плакать можно, а не смеяться... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 08:30 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex Torinна кой FB знать тип параметра до присвоения ему значенияПамять под пар-ры выделяется на этапе prepare ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 09:17 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
hvladAlex Torinна кой FB знать тип параметра до присвоения ему значенияПамять под пар-ры выделяется на этапе prepare Ну, сделал prepare - получил от сервера типы. Выделил память под них. Один раз (если это не стринг). Потом заполняешь их (меняешь эту память - значения параметров), да и всё, execute с ними вызываешь. Не понял пока, в чем проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:24 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
YuRock, ты сейчас с кем разговаривал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:30 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
YuRockНу, сделал prepare - получил от сервера типы. ну и какой тип ты должен получить для первого примера автора без CAST? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:32 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
YuRockНе понял пока, в чем проблема. В данном конкретном случае проблема в том, что параметр торчит в списке столбцов выборки. Соответственно, его тип определяет тип столбца. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:33 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
hvladты сейчас с кем разговаривал ? IBExpertYuRockНе понял пока, в чем проблема. В данном конкретном случае проблема в том, что параметр торчит в списке столбцов выборки. Соответственно, его тип определяет тип столбца. Всё, я понял :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:45 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Симонов Денисну и какой тип ты должен получить для первого примера автора без CAST? Не заметил сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 10:45 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Alex TorinКогда вы мне объясните с чем отождествить ваше "даю тебе", тогда я и отвечу на ваш вопрос! Вы передаете запрос с параметром на сервер. Этот параметр ФБ не может ни с чем соотнести. Тип параметра определяется на этапе prepare. Я провел аналогию и сымитировал ситуацию - передал вам, как серверу, параметр :p22 и попросил определить его тип. Вы не смогли. А почему сервер должен? Исходя из чего? Меня интересует, что тут непонятного, и почему тут какая-то клоунада на эту тему, вроде "ха-ха, ФБ не может определить тип!"? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 11:05 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Можно ли отдать серверу sql: Код: sql 1.
и значение параметра S за один call, без prepare? Если можно, то может можно и Код: sql 1.
передать за один call, без prepare? И тогда тип поля становится известным. Ещё вопрос: как выполнить уже препарированный запрос: Код: sql 1.
со значением параметра большим чем длина поля? Если S равен 'AAAAA', то всё ok, а если 'AAAAAA', то: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 11:36 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
kdvМеня интересует, что тут непонятного, и почему тут какая-то клоунада на эту тему, вроде "ха-ха, ФБ не может определить тип!"? Да просто люди работали с Оракулом или МС, которые даже не пытаются определить тип параметра и вообще не имеют такой функциональности в API. Hommerзначение параметра S за один call, без prepare? Можно, но внутри он всё равно сначала сделает Prepare запросу без значения пааметра, а потом уже Execute для значения параметра. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 12:35 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
Hommer, 1. Можно 2. Можно но тогда ты должен сам указывать тип и размер параметра в приложении 3. Вроде то же можно. Но опять же придётся поработать Ты же используешь готовые компоненты у которых строгий алгоритм. prepare->получение типов параметров, которые возвращает сервер->заполнение параметров->execute Не получай типы параметров с сервера, заполняй всё сам, и будет тебе счастье, но это же думать надо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 12:36 |
|
Параметры в предложении SELECT
|
|||
---|---|---|---|
#18+
kdvAlex TorinКогда вы мне объясните с чем отождествить ваше "даю тебе", тогда я и отвечу на ваш вопрос! Вы передаете запрос с параметром на сервер. Этот параметр ФБ не может ни с чем соотнести. Тип параметра определяется на этапе prepare. Я провел аналогию и сымитировал ситуацию - передал вам, как серверу, параметр :p22 и попросил определить его тип. Вы не смогли. А почему сервер должен? Исходя из чего? Меня интересует, что тут непонятного, и почему тут какая-то клоунада на эту тему, вроде "ха-ха, ФБ не может определить тип!"? Я вас просто попросил точнее мысль свою сформулировать - это знаете ли иногда важно в ИТ, что бы вас правильно понять. А вы уже нарисовали картину маслом, что я что-то там не смог... Не стоит бежать впереди паровоза с выводами о человеке, когда сам корректно 2х слов связать не способен! Я многое не могу сделать как сервер (и вы тоже), даже питаюсь не от электросети - потому ваше сравнение меня с сервером мягко выражаясь для хайпа... Цирка нет - интересно почему его не интересует тип в предложении where, но интересует в select. Или для where он способен определить, а для select нет? Интересует чисто технически как задумано, что бы просто понять - без "ха-ха"... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 12:39 |
|
|
start [/forum/topic.php?fid=40&fpage=35&tid=1561190]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 196ms |
0 / 0 |