|
|
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Добрый день! Использую делфи и MSSQL. Из БД пытаюсь вставить "рублевые" данные (тип данных в БД - money)в Edit и не могу понять, почему он их выдает без "копеек", т.е. только целую часть. Но когда пишу запрос вот так: rtrim(convert(varchar(20),t2.CostPerDayFiz)) , то все нормально. И еще. Когда пытаюсь одно поле таблицы присвоить другому, то же самое (типы данных одинаковые). Обьясните пожалуйста, где я ошибся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 08:37:08 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Вам может начать DBEdit юзать? Или тогда нпишите как Вы присвоение делаете, потому как Edit1.Text := ADODataSet2.FieldByName('mon').AsString; проходит прекрасно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 08:55:03 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Делаю вот так: Edit1.Text:=Query1.FieldByName('CostPerDayUr').AsString результат тот же! Только целая часть выводится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 09:07:31 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
И даже, когда пытаюсь просто присвоить значения, тот результат! StoredProcChangeNewDogovor.ParamByName('@CostPerDayDogovor').AsCurrency:= QueryFreeCells.FieldByName('CostPerDayFiz').AsCurrency; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 09:09:40 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Сравним скрипт запроса? declare @m money set @m = 1.22 select mon = @m И какая делфа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 09:16:14 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Можно по-подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 09:44:09 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
продолжите Query1.sql.text := ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 10:09:29 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Пишу в Query: declare @m money set @m = 1.22 select mon = @m, t1.id_cell, t1.num_safe, t1.Num_cell, t2.CostPerDayFiz, /* rtrim(convert(varchar(20),t2.CostPerDayFiz)) as CostPerDayFiz,*/ t2.NDSUr, t2.NDSFiz from cells t1, TypesOfCells t2 Выдает ошибку:Error creating cursor handle Тоже самое пишу в SQL Query Analyzer, то все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 10:42:55 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Начните с моего запроса а потом усложняйте добавлением полей до своего. Сразу поймете где ошибка. Заодно и проверим работает ли мой код у Вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 10:54:36 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Сейчас попробую. Еще поднял мануал, так там пишут, что если использовать тип данных money, то "надо перед значащей цифрой ставить знак доллара или другой валюты, определенной для вышего региона". (Ex.: insert ... values($222, .....) ) Это обязательно? Если, да, то как это воплотить в процедурах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 11:07:56 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
>Slava Если пишу только Ваш код, то сразу ошибка "Error creating cursor handle " А в Analyzer работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 11:54:08 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
$ не обязателен. Попробуйте поставить новый Query и попробовать с ним. Возможно Вы меняли настройки курсора, и теперь что с ними не так. В новом все будет по умолчанию. Какая делфи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 12:09:45 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
- попробую сейчас - дельфя 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 12:25:17 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
>Slava С новым Query таже проблема и таже ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 12:36:15 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
У Вас хоть какой-нибудь SQL выполняется? Если да то попробуйте тот же самый скрипт но с типом данных decimal. Да и вообще money и decimal одно и тоже. Decimal(15,3) Вам должно хватить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 14:32:26 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
>Slava :))) хоть какой-нибудь скрипт у меня выполняется! Изменить тип не трудно. Вот только очень хотелось разобраться в сложившейся ситуации. Делать нечего! Прийдется везде поменять тип money на decimal или float. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 14:43:35 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
А чем Вы пользуетесь для доступа? - ADO, BDE, ODBC? Если BDE - драйвер native, не ODBC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2002, 15:02:51 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
использую BDE через ODBC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 06:28:52 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
А какой тип данных лучше использовать вместо money: float или decimal? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 07:03:19 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Попробуйте для Вашего BDE-алиаса установить ENABLE BCD=FALSE (из BDE администратора). ИМХО, decimal лучше. ЗЫ. Достаточно активно пользуюсь типом money через BDE, когда появился ADO - через ADO. Подобных проблем не было. Впрочем BDE через ODBC на пользовался (а зачем?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 11:34:18 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Чой-то мне кажется, что ENABLE BCD=TRUE должно быть. Посмотрите в настройках М для денег лучше все же money. Он для этого и существует. И лучше не BDE. А чего TDBEdit не используете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 11:55:34 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Так, по-порядку. 1. decimal тоже не работает(только целую часть выводит), а вот float работает нормально. 2. DBEdit использую - тоже самое. Сейчас попробую изменить настройки BDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 12:01:27 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Посмотрел сейчас свои настройки. ENABLE BCD=FALSE. Все работает. Припоминается, что имел я какие-то проблемы в случае TRUE, и вроде именно с деньгами. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 12:03:10 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
пытался изменить ENABLE BCD (по умолчанию стояло False), пишет, что не может изменить ENABLE BCD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 12:26:34 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Перегрузился, и смог изменить настройки. Сейчас пробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 12:35:16 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
все же ENABLE BCD=False, а то он ругался. Получилось!!! А все дело в том, что оказывается, когда в дельфях пишешь запрос в Query, то надо дополнительно указывать, что поле "денежное". (Query-Fields-currency) всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 13:05:40 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
И вдогонку - я имел в виду, что decimal лучше float в качестве замены money. А для денег лучше конечно money. Однозначно. И delphi его очень даже поддерживает. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2002, 13:10:52 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
Сколько уже писано что Мани не использовать для хранения денежного формата ... :)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 07:30:32 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
>MarchCat Сколько уже писано что Мани не использовать для хранения денежного формата Вы знаете, высказанные аргументы меня не убеждают. А что Вы предлагаете? Ну например, в моей конторе есть расценки до десятых копейки. Мне думается (ИМХО), что дело-то сводится к следующему: хранить деньги в формате с плавающей запятой (Бр-р-р-р) или в формате с фиксированной точкой. Этот самый формат весьма даже подходит. И я не видел ни одной не спровоцированной программистом ошибки этого формата (включая горячо обсуждаемый давеча на этом уважаемом мною форуме факт, что 2,454580 все-таки 2,46 (или 2,5) как ни странно.(:)). Впрочем, лет 10 назад опасался переполнения разрядной сетки - но обошлось:). А аккуратность - она никому не вредит (это я про округление - где надо и аккуратно). С уважением и Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 10:27:36 |
|
||
|
Рубли без копеек
|
|||
|---|---|---|---|
|
#18+
tо Oleg_Martynov 1. А как не крути все равно децимал нужен ... 2. И было еще предложение хранить целые значения и когда нужно делить на сколько нужно получая копейки или еще чего. 3. проблема с округлением, но это проблема больше ламеров, так что это к вам не относится :) МЯФ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2002, 20:07:39 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1822106]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 306ms |

| 0 / 0 |
