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

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

При вводе ключевого поля не отображаются некоторые лукапные поля [D5]


Страницы:   1 2

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]

А какая у тебя СУБД ?


Страницы:   1 2

Наверх

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