powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рубли без копеек
31 сообщений из 31, показаны все 2 страниц
Рубли без копеек
    #32032432
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Использую делфи и MSSQL.
Из БД пытаюсь вставить "рублевые" данные (тип данных в БД - money)в Edit и не могу понять, почему он их выдает без "копеек", т.е. только целую часть.
Но когда пишу запрос вот так:
rtrim(convert(varchar(20),t2.CostPerDayFiz)) , то все нормально.
И еще. Когда пытаюсь одно поле таблицы присвоить другому, то же самое (типы данных одинаковые).

Обьясните пожалуйста, где я ошибся?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032433
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам может начать DBEdit юзать? Или тогда нпишите как Вы присвоение делаете, потому как
Edit1.Text := ADODataSet2.FieldByName('mon').AsString;
проходит прекрасно
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032437
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю вот так:
Edit1.Text:=Query1.FieldByName('CostPerDayUr').AsString

результат тот же! Только целая часть выводится!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032438
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже, когда пытаюсь просто присвоить значения, тот результат!

StoredProcChangeNewDogovor.ParamByName('@CostPerDayDogovor').AsCurrency:=
QueryFreeCells.FieldByName('CostPerDayFiz').AsCurrency;
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032441
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравним скрипт запроса?
declare @m money set @m = 1.22
select mon = @m
И какая делфа?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032446
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно по-подробнее?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032453
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
продолжите Query1.sql.text :=
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032460
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу в 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, то все нормально.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032463
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начните с моего запроса а потом усложняйте добавлением полей до своего. Сразу поймете где ошибка. Заодно и проверим работает ли мой код у Вас
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032467
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас попробую.
Еще поднял мануал, так там пишут, что если использовать тип данных money, то "надо перед значащей цифрой ставить знак доллара или другой валюты, определенной для вышего региона".
(Ex.: insert ... values($222, .....) )
Это обязательно?
Если, да, то как это воплотить в процедурах?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032474
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Slava
Если пишу только Ваш код, то сразу ошибка
"Error creating cursor handle "
А в Analyzer работает нормально.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032479
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$ не обязателен.
Попробуйте поставить новый Query и попробовать с ним. Возможно Вы меняли настройки курсора, и теперь что с ними не так. В новом все будет по умолчанию.
Какая делфи?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032480
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- попробую сейчас
- дельфя 6.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032482
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Slava

С новым Query таже проблема и таже ошибка
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032499
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У Вас хоть какой-нибудь SQL выполняется? Если да то попробуйте тот же самый скрипт но с типом данных decimal. Да и вообще money и decimal одно и тоже. Decimal(15,3) Вам должно хватить.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032502
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Slava
:))) хоть какой-нибудь скрипт у меня выполняется!

Изменить тип не трудно. Вот только очень хотелось разобраться в сложившейся ситуации.
Делать нечего! Прийдется везде поменять тип money на decimal или float.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032505
Oleg_Martynov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем Вы пользуетесь для доступа? - ADO, BDE, ODBC? Если BDE - драйвер native, не ODBC?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032608
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использую BDE через ODBC
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032610
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой тип данных лучше использовать вместо money:
float или decimal?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032636
Oleg_Martynov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте для Вашего BDE-алиаса установить ENABLE BCD=FALSE (из BDE администратора).
ИМХО, decimal лучше.
ЗЫ. Достаточно активно пользуюсь типом money через BDE, когда появился ADO - через ADO. Подобных проблем не было. Впрочем BDE через ODBC на пользовался (а зачем?).
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032643
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чой-то мне кажется, что ENABLE BCD=TRUE должно быть. Посмотрите в настройках

М для денег лучше все же money. Он для этого и существует.
И лучше не BDE.

А чего TDBEdit не используете?
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032646
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, по-порядку.
1. decimal тоже не работает(только целую часть выводит),
а вот float работает нормально.
2. DBEdit использую - тоже самое.

Сейчас попробую изменить настройки BDE.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032647
Oleg_Martynov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел сейчас свои настройки. ENABLE BCD=FALSE. Все работает.
Припоминается, что имел я какие-то проблемы в случае TRUE, и вроде именно с деньгами.
Удачи!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032654
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пытался изменить ENABLE BCD (по умолчанию стояло False),
пишет, что не может изменить ENABLE BCD.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032656
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перегрузился, и смог изменить настройки.
Сейчас пробую.
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032659
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все же ENABLE BCD=False, а то он ругался.

Получилось!!!
А все дело в том, что оказывается, когда в дельфях пишешь
запрос в Query, то надо дополнительно указывать, что поле "денежное". (Query-Fields-currency)

всем спасибо!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032662
Oleg_Martynov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вдогонку - я имел в виду, что decimal лучше float в качестве замены money. А для денег лучше конечно money. Однозначно. И delphi его очень даже поддерживает.
Удачи!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32032665
Kid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32033727
Фотография MarchCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько уже писано что Мани не использовать для хранения денежного формата ... :))))
...
Рейтинг: 0 / 0
Рубли без копеек
    #32033765
Oleg_Martynov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>MarchCat Сколько уже писано что Мани не использовать для хранения денежного формата
Вы знаете, высказанные аргументы меня не убеждают. А что Вы предлагаете? Ну например, в моей конторе есть расценки до десятых копейки. Мне думается (ИМХО), что дело-то сводится к следующему: хранить деньги в формате с плавающей запятой (Бр-р-р-р) или в формате с фиксированной точкой. Этот самый формат весьма даже подходит. И я не видел ни одной не спровоцированной программистом ошибки этого формата (включая горячо обсуждаемый давеча на этом уважаемом мною форуме факт, что 2,454580 все-таки 2,46 (или 2,5) как ни странно.(:)).
Впрочем, лет 10 назад опасался переполнения разрядной сетки - но обошлось:).
А аккуратность - она никому не вредит (это я про округление - где надо и аккуратно).
С уважением и Удачи!
...
Рейтинг: 0 / 0
Рубли без копеек
    #32034396
Фотография MarchCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tо Oleg_Martynov

1. А как не крути все равно децимал нужен ...
2. И было еще предложение хранить целые значения и когда нужно делить на сколько нужно получая копейки или еще чего.
3. проблема с округлением, но это проблема больше ламеров, так что это к вам не относится :)

МЯФ!
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рубли без копеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]