![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При вводе ключевого поля не отображаются некоторые лукапные поля [D5]
alextov © (2003-12-29 15:28:00)
Наблюдается такой интересный глючок.
Есть таблица с товарами (код товара, название товара) - TableTovari, таблица с заказами(код товара, количество, и тд) - TableZakazi. Поле "Название товара" в TableZakazi - лукапное и связывается с TableTovari по полю "Код товара".
То есть при новом заказе я вбиваю код товара в поле "Код товара" таблицы заказов и по Enter в лукапном поле появляется название товара. Ситуация то в общем стандартная.
Но на некоторые дробные коды (типа 69.1) название товара не подтягивается, как-будто такого товара вообще нет в таблице товаров. Причем записи в таблице товаров (те которые отображаются нормально и те которые не подхватываются) практически идентичны.
Никто не подскажет в чем может быть проблема ?
alextov (2003-12-30 17:57:00) [1]
Всем спасибо!!
Решать данную проблему буду уже в следующем году, так как новогодняя пьянка уже началась :))) И завтра тоже явно свежие творческие идеи в голову не придут :)))
Sandman25 (2003-12-30 16:53:00) [2]
[20] alextov (30.12.03 16:51)
Вот Вам совет. Сделайте новую табличку из одного поля типа DEC(8,2), новый проект с TORAQuery и посмотрите, сохраниться ли для него та же ругань. Если все будет работать, значит, действительно была Ваша проблема :)
alextov (2003-12-30 16:51:00) [3]
к сожалению это не проблема TOraQuery - это моя ПРОБЛЕМА!! :)))
Sandman25 (2003-12-30 16:39:00) [4]
[18] alextov (30.12.03 16:29)
Значит, это проблема TOraQuery, который преобразует BCD в Float.
Я использовал такой подход с TQuery и с TSQLQuery и такого сообщения не было. Или Вы в select еще к полю что-то добавляете? Тогда попробуйте явно привести к BCD: что-то типа CAST(myfield AS DECIMAL(8,2))
alextov (2003-12-30 16:29:00) [5]
поменял см [14]
Sandman25 (2003-12-30 16:22:00) [6]
В базе поменять на DEC не забыли?
alextov (2003-12-30 14:40:00) [7]
После того как поменял тип поля в Query на TBCDField
при открытии Query начала вылетать ошибка
Type mismatch for field "Field1" expecting BCD , actual Float
Sandman25 (2003-12-30 12:43:00) [8]
[14] alextov (30.12.03 12:08)
Естественно, надо поменять. Иначе Delphi перегоняет обратно во Float.
alextov (2003-12-30 12:08:00) [9]Поменял тип поля на DECIMAL(8,2) но это не помогло.
Может еще и TOraQuery поменять тип поля на ftBCD&
Anatoly Podgoretsky (2003-12-30 11:53:00) [10]
alextov (30.12.03 11:46) [12]
Необязательно, зависит от СУБД, но как правило NUMBER это float(double), а DECIMAL BCD, но не обязательно, это авторы решают
alextov (2003-12-30 11:46:00) [11]
не совсем понял где заменить?
Если в базе то у меня там изначально тип поля был определен как
NUMBER(8,1), что по моему разумению где-то одинаково.
Sandman25 (2003-12-29 17:39:00) [12]
[10] alextov (29.12.03 17:23)
Замените FLOAT на DECIMAL(10,1)
alextov (2003-12-29 17:23:00) [13]
не хочет, собака !!!
Поменял oба TOraTable на TOraQuery написал в запросе
select round(id,1) from tovari
То есть уже должно выбирать в QueryTovari значение поля id округленное до 1 цифры после запятой...., ввожу тоже вроде 69.1 (а не 69.09999)....должно одно равняться другому , а не хочет , зараза
alextov (2003-12-29 17:16:00) [14]
да я и не использую...
пользуюсь набором компонент прямого доступа ODAC, а писал TTable, чтоб проще для восприятия было
Stas (2003-12-29 16:33:00) [15]
Для таких БД как ORACLE TTABLE лучше не использовать и BDE наверное тоже.
alextov (2003-12-29 16:12:00) [16]
Логично, я правда сейчас пользуюсь TTable, туда select не запишешь. Но перейти на TQuery не проблема. Спасибо ща попробую.
Stas (2003-12-29 16:05:00) [17]
У тебя в Oracle должна быть функция округления.
в MS SQL так Select Field1,...,ROUND (KEYFIELD,1) from ...
у тебя должно быть что-то похожее.
Я так делал и все работает 100%
alextov (2003-12-29 16:01:00) [18]
Oracle8
Johnmen (2003-12-29 15:55:00) [19]
>alextov
Для данного случая в обязательном порядке д.б. суррогатные целочисленные ключевые поля. Почитай про организацию ссылочной целостности...
Stas (2003-12-29 15:54:00) [20]
А какая у тебя СУБД ?