|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
FB2.1 Fibplus 6.9.6 Выполняю: DS1.ParamByName('FIL').AsString := 'Aa'; DS1.Refresh(); DS1.ParamByName('FIL').AsString := 'Bb'; DS1.Refresh(); DS1.ParamByName('FIL').AsString := 'Aaa'; DS1.Refresh(); - тут ошибка переполнения Вроде как где-то для параметра резервируется место только для 2-х символов. Как это обойти? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:41 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhКак это обойти? Увеличить размер поля FIL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:47 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjh, запрос какой? схема таблиц в запросе какая? кодировки БД/таблицы/столбца и соединения какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:48 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Arioch, select * from NOMENKL N where upper(N.N_TOVAR) LIKE upper(coalesce(:FIL,'%z')) в этом случае я могу передать в параметре только 2 символа select * from NOMENKL N where upper(N.N_TOVAR) LIKE upper(coalesce(:FIL,'%')) а в этом - только 1 символ Что это за хрень? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 13:00 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjh, 1. используй cast(:FIL AS VARCHAR(3)) ну или сколько там тебе максимум потребуется 2. читай про containing и starting with ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 13:04 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Симонов Денис, спасибо тебе, добрый человек - помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 13:10 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhЧто это за хрень? Какую написал, такая и хрень. Нафига там UPPER, да ещё и COALESCE? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 13:11 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhЧто это за хрень? https://ru.wikipedia.org/wiki/Схема_базы_данных но в твоем случае дело было в запросе действительно ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 13:53 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhselect * from NOMENKL N where upper(N.N_TOVAR) LIKE upper(coalesce(:FIL, '%z' ))О-пля, красотища-то какая! Ляпотища!!!... Как сказал бы Ньютон наш - Исаак: "Дайте мне поле подлиннее и я наверну эту базу SQL-inject'ом!". И зачем только разработчики FBPlus и fbclient.dll предусмотрели параметризацию? Вот же глупые... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:10 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
А, этож LIKE... Сразу не разглядел. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:14 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 22 сентября 2016 г. 14:14:07: Rdb DevДайте мне поле подлиннее и я наверну эту базу SQL-inject'ом! и куда ты тут инжектить собрался? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:15 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Мимопроходящий, В инжектор. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:16 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Спросонья чего только не померещиться... Мне стыдно. njgjh, попробуй так: Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:19 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Мимопроходящийи куда ты тут инжектить собрался?Уже никуда. Пару минут назад глаза "продрал", вот и мерещится всякое... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:23 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Нужен совет - придется програмно вставлять в запрос неизвестное кол-во операторов LIKE, н-р: Код: sql 1.
С помощи параметра как приводил в примере выше это сделать наверное не получится. Но помнится мне что в фибах как-то можно было изменять программно условие where, но как это делалось увы в доках не нашел. Или может есть какой другой простой способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 15:29 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjh, в "фибах" есть только опция poNoForceIsNull. Произвольное количество параметров лепиться ручками и выбор реализации ограничен лишь вашей фантазией и навыком. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 15:47 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhНужен совет - придется програмно вставлять в запрос неизвестное кол-во операторов LIKE, н-р: Код: sql 1.
какой запрос интересный... www.sql.ru/forum/784106-4/firebird-i-sphinx ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 15:59 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
rdb_devв "фибах" есть только опция poNoForceIsNull. Там есть ещё макросы. Но аффтару хватит и TpFIBQuery.SQL.Add. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 16:09 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да, у TStringList неплохой функционал, но я бы накидывал значения параметров во временную таблицу с ограничением существования строк временем жизни транзакции и дергал бы их в этой транзакции из селективной ХП для FOR SELECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 16:29 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
rdb_dev, зачем так все усложнять? Я люблю когда все просто - нашел в фибах DS1.MainWhereClause меня устраивает. Всем спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 16:52 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjhпомнится мне что в фибах как-то можно было изменять программно условие where CONDITIONS Их можно много задать, по ходу каждое из них включать и отключать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 09:31 |
|
Как передавать строковые параметры с разной длиной?
|
|||
---|---|---|---|
#18+
njgjh, по мне так гораздо проще создать временную таблицу, ХП с двумя FOR SELECT, вложенными один в другой и прикрутить в приложении к TFIBDataSet временной таблицы обычный TDBGrid для накидывания параметров запроса, чем париться с построением в цикле WHERE, обработкой подготовки запроса и накидыванием в цикле значений нумерованных параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 09:42 |
|
|
start [/forum/topic.php?fid=40&tid=1561961]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
1ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 403ms |
0 / 0 |