Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Вниз

работа с числовами полями длинной размерности в бд на MAINFRAME   Найти похожие ветки 

 
stasssw   (2003-04-30 18:17) [0]

DELPHI программа работает с СУБД db2 на Mainframe.ТАм есть тип поля DECIMAL например DECIMAL(18,2), НУжно выбирать это поле и не только отображать, но и производить вычисления,и отображать затем только!!! в целочисленном формате, а не float,PC поддерживает только 15 знаков, можно выбрать данные, как string(есть функция db2 CHAR),но это затрудняет вычисления и к тому же она отображает любое число, как 18 знаков, дополняя незначащими нулями слева, а отображаться значение как десятичная дробь число без лишних нулей слева и с 2-мя знаками после запятой, например 1222.45(так нужно давать данные пользователю), а не 0000000000001222.45 и не что-то типа 1.22E5(экспоненциальная форма). Помогите, может кто-нибудь тоже сталкивался с такой проблемой. Заранее, спасибо.


 
Zacho   (2003-04-30 18:57) [1]

Совет такой: читать книжки, хелпы, и т.п. по Дельфи. А так же более вразумительно формулировать вопросы. Чем не подходит например, Int64 ? В чем, вообще, проблема ? Например, я работаю на Interbase"е c NUMERIC (18,2) и проблем не возникает. И вообще, какая разница, mainframe или notebook, типы данных (и работа с ними) везде одинаковы. Что за глупость "PC поддерживает только 15 знаков" ??? Да сколько угодно знаков может поддерживать все что угодно, от железа это не зависит.
В, общем, напиши конкретно, в чем проблема. Но только после того, как почитаешь хоть какие-нибудь учебники.


 
Zacho   (2003-04-30 19:22) [2]

Еще раз перечитал твой вопрос, включил телепатический режим :-) и кажется понял: похоже, ты хотел сказать, что используемые тобой компоненты доступа к БД не поддерживают 64-х разрядные типы данных ? Тогда написал бы хоть, чем пользуешься (BDE ? или что-то специфичное для DB2 ?).
Если хочешь получить вразумительный ответ, задавай вопрос так, что-бы и не телепаты могли его понять. Пиши более аккуратно, в твоем тексте черт ногу сломит, понять что-нибудь можно только с большим напрягом.
И еще раз посоветую: читай про типы данных в Object Pascal"е и про работу с разными типами данных, и сможешь найти решение самостоятельно.


 
stasssw   (2003-04-30 19:27) [3]

zacho:приблизительно,так, если отобразить В dbgrid запрос
select num from t. где num - decimal(18,2) и num имеет >16
знаков, оно высветится xxxEnn (экспоненц.форме), проверено, и SQL-explore, если брать fieldbyname("num").Asstring, то отобразится правильно, но со незначащими нулями (000000000134.00)Я не очень крутой программист и мне надо, что типа fieldbyname("num").<какой-нибудь тип>,чтобы получить 000000000134.00 ->34.00
Благодарю!!!


 
stasssw   (2003-04-30 19:32) [4]

zacho от stasssw: уточнение ---- пользуюсь ADO,ODBC


 
Zacho   (2003-04-30 19:47) [5]


> stasssw (30.04.03 19:32)

Я с ADO не работаю, поэтому посоветовать мало что могу. Спроси у спецов по ADO (советую поставить в тему вопроса "ADO" чтобы обратили внимание). Почитай хелп по ADO-компонентам. Попробуй AsCurrency. В любом случае, ты всегда можешь преобразовать значение к нужному виду, пользуясь событиями TField.OnGetText и OnSetText. Также посмотри св-во DisplayFormat. Да и нули в строках всегда можно обрезать, смотри функции для работы со строками. В общем, читай,ищи и пробуй, и все получится !



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-70190
-=DeMoH=-
2003-05-04 12:41
2003.05.22
КАК УЗНАТЬ, КАКАЯ ИЗ ЗАПИСЕЙ РЕДАКТИРУЕТСЯ В DBGrid?


1-70357
saperxl
2003-05-10 01:51
2003.05.22
При переходе на другой ПК компоненты меняют размеры


1-70208
MAX22
2003-05-10 21:53
2003.05.22
Как досрочно завершить процедуру?


14-70488
Материнская зарплата
2003-04-30 03:31
2003.05.22
От VCL к API


14-70465
Рыжий Вася
2003-05-01 12:08
2003.05.22
Пишу диплом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский