| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Работа с деньгами |
| Автор: Alca 17.8.2010, 12:44 | ||||
| C++Builder 2010, ODBC Создаю таблицу:
Начинаю заполнять DBGrid. Когда в поле f_product_price вношу значение 55,55, получаю мсжбокс с такой ошибкой:
Как это лечиться? |
| Автор: azesmcar 17.8.2010, 13:03 |
может 55.55? |
| Автор: Alca 17.8.2010, 13:12 | ||
В данное поле точка вообще не пробивается |
| Автор: azesmcar 17.8.2010, 13:17 |
может в том и проблема? попробуй настроить Grid, какой разделитель он использует? возможно разделитель на клиенте и на PosgreSQL различаются. |
| Автор: Alca 17.8.2010, 13:30 | ||||
Как я настрою DBGrid? )))
клиент и сервер на одной машине Точка пробивается, если поменять в настройках локали запятую на точку (Панель управления \ Язык и региональные стандарты \ разделитель целой и дробной части), тогда вводиться с точкой, но ошибка таже Добавлено через 2 минуты Здесь http://www.postgresql.org/docs/8.3/static/datatype-money.html че-то написано - я не могу въехать |
| Автор: azesmcar 17.8.2010, 13:32 |
| Alca А можно взглянуть на SQL запрос? |
| Автор: Alca 17.8.2010, 13:35 | ||||
|
| Автор: skyboy 17.8.2010, 13:40 |
DBGrid - это такая негибкая хрештука, которая берет на себя формирование запросов. Их вообще проблемно выяснить. Т.е. добраться до уровня INSERT/UPDATE - сложная задача. Думаю, есть смысл закинуть тему в C++: БАзы данных. Ибо решение может оказаться в настройке ODBC-подключения. Добавлено через 1 минуту и 42 секунды Alca, неужели ты думаешь, что при вставке значения в DBGrid для записи в базу используется SELECT запрос? |
| Автор: azesmcar 17.8.2010, 13:43 | ||
Проблема может быть еще до этапа форматирования, для начала надо бы взглянуть на то, что можно а если не найдется - тогда смотреть на сгенерированный запрос через какой нибудь SQL monitor. Добавлено через 57 секунд вполне |
| Автор: Alca 17.8.2010, 13:44 | ||
Нет. Мсжбокс вылазит при вставке данных. Т.е. я заношу данные в грид, делаю Post и потом ошибка. |
| Автор: azesmcar 17.8.2010, 13:47 | ||
я знаю, потому и написал покажи insert (update) запрос. |
| Автор: Alca 17.8.2010, 13:47 | ||||
Коннекшн стринг:
Добавлено через 2 минуты и 6 секунд
его нет, я делаю пост на DBNavigator-e |
| Автор: azesmcar 17.8.2010, 13:53 |
| Его не может не быть, если ты его не писал - он будет сгенерирован (TableAdapter или как его там?). |
| Автор: Alca 17.8.2010, 13:58 | ||
Я ж не спорю. А где его посмотреть можно? |
| Автор: Alca 17.8.2010, 15:22 | ||
http://postgresql.ru.net/manual/datatype-money.html
|
| Автор: Alca 17.8.2010, 15:43 |
| Какой тип поля должен быть для хранения денежных величин? Случаем не double? |
| Автор: Akina 17.8.2010, 16:01 | ||
Вместе с сообщением об ошибке это говорит о том, что у тебя как раз имеется этот самый "non-quoted numeric", который надо преобразовывать в money ручками. Как - не скажу, даже не спрашивай. Бо не спец. |
| Автор: Platov 23.8.2010, 14:49 | ||
А что если твои 55.55 прогнать через такую функцию:
С ораклом срабатывает. |
| Автор: mrbrooks 24.8.2010, 07:50 |
этот контрол ничего не делает. все операции идут на уровне TXXXTable, через DataSource. Я так понимаю ты сгенирировал TTable (т.е. строго типизированным). Поэтому каждому полю должен соответствовать класс производный от TField. Соответственно для денежного типа должен быть свой. Кури его настройки. Ты бы ради интереса попробывал INSERT. Честно говоря я бы использовал параметризованные запросы. Но это дело вкуса. Добавлено через 17 секунд А то и хранимые процедуры! |