Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FIBPlus вопрос по FIBQuery


dwar ©   (2006-06-21 11:05:00) 

Есть FIBQuery  в ней SQL
SQL:
SELECT
   ID,
   ID_UNIT,
   GOOD_CODE,
   GOOD_NAME,
   PRICE,
   Department,
   id_nds
FROM
   GOODS
where EAN8=:EAN8


EAN8 varchar(8)
вопрос вот какой если я передаю в параметр( :EAN8) строку более чем 8 сиволов выскакивает ошибка SQL хотя при тех же самых параметрах запрос в IBExpert  спокойно возвращает null,
можно ли это обойти каким нибудь способом ?


Johnmen   (2006-06-21 23:22:00) [1]


> atruhin ©   (21.06.06 14:52) [8]
> Это с чего бы? Какие у него недостатки при селективных запросах?


Это с функционального назначения. Про него и про "недостатки" легко читается в F1.


Виталий Панасенко   (2006-06-21 15:46:00) [2]

А если штрих-код хранить в одном поле, то все проблемы с WHERE пропадают. какая разница, EAN8 или EAN13- главное, что такое значени в поле "ШТРИХ-КОД" есть !


atruhin   (2006-06-21 14:52:00) [3]

> [2] Johnmen ©   (21.06.06 11:42)
> pFIBQuery в общем случае не предназначен для селективных
> запросов...

Это с чего бы? Какие у него недостатки при селективных запросах?

> where EAN8=:EAN8
> or EAN12=:EAN8
> or EAN13=:EAN8

Не правильно и не эффективно. Заполняешь Conditions в зависимости от длинны параметра включаешь нужное. 3 строки кода.


Johnmen   (2006-06-21 13:56:00) [4]


> необходимо найти запись в таблице по одному из полей разной
> длинны


Непонятно. Что за "разная длинна"?


dwar   (2006-06-21 13:19:00) [5]

2 Val
303
Arithmetic exeption,numeric overflow, or string truncation

2 Johnmen
необходимо найти запись в таблице по одному из полей разной длинны


Val   (2006-06-21 13:10:00) [6]

>но FIB ругается
матом? или тихонько журит? текст ошибки - секрет?


Johnmen   (2006-06-21 13:09:00) [7]


> А чем лучше пользоваться ?


Это зависит от того, что конкретно надо.


> where EAN8=:EAN8
> or EAN12=:EAN8
> or EAN13=:EAN8


А вот это 3 (три) разных параметра. Хоть и имя совпадает...


dwar   (2006-06-21 13:05:00) [8]

Если обрезать то он чегонить и найдет возможно :)
Просто необходимо по 8,12,13 символам найти строку так вот хотел просто поставить

where EAN8=:EAN8
or EAN12=:EAN8
or EAN13=:EAN8

но FIB ругается

2 Johnmen
А чем лучше пользоваться ? FIBDataSet ? ради 1-го запроса ?


Johnmen   (2006-06-21 11:42:00) [9]

pFIBQuery в общем случае не предназначен для селективных запросов...


Val   (2006-06-21 11:32:00) [10]

передавать обрезанную до 8 символов строку в параметр.
какая ошибка-то?


Наверх

Титульная страница Поиск, карта сайта Написать письмо