Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Типы данных в клиенском приложении, InterBase 7.5 | Builder 6.0 
:(
    Опции темы
vAnza
Дата 7.12.2006, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.11.2006
Где: Курск

Репутация: нет
Всего: нет



Здрасте!
Вот такой вапрос у меня:

значит есть в бд два поля; одно с типом Date, второе Double Precision

В эти поля заносятся значения из TEdit компонентов, расположенных на форме билдера.

Код

IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsInteger = StrToInt(Edit1->Text);
IBDataBase1->IBDataSet1->FieldByName("A_PRICE_PIECE")->AsInteger = StrToInt(Edit2->Text);


Так вот этот код не верный, т.к. база ругаеца. Собственно вапрос: Вместо AsInteger можно подставить ещо
AsBCD 
AsBoolean
AsCurency
AsDateTime 
AsFloat 
TPersistent::Assign 
TField::Assign 
AssignValue 
Variant

В англицком не силён, памагите разобраттся какие значения выбирать для Date и Double Precision соответственно.


PM MAIL ICQ   Вверх
TaNK
Дата 7.12.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(vAnza @ 7.12.2006,  03:04)
Здрасте!
Вот такой вапрос у меня:

значит есть в бд два поля; одно с типом Date, второе Double Precision

В эти поля заносятся значения из TEdit компонентов, расположенных на форме билдера.

Код

IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsInteger = StrToInt(Edit1->Text);
IBDataBase1->IBDataSet1->FieldByName("A_PRICE_PIECE")->AsInteger = StrToInt(Edit2->Text);


Так вот этот код не верный, т.к. база ругаеца. Собственно вапрос: Вместо AsInteger можно подставить ещо
AsBCD 
AsBoolean
AsCurency
AsDateTime 
AsFloat 
TPersistent::Assign 
TField::Assign 
AssignValue 
Variant

В англицком не силён, памагите разобраттся какие значения выбирать для Date и Double Precision соответственно.

IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsInteger = StrToInt(Edit1->Text);
и как же ты представляешь себе что оно должно работать если у тебя поле типа Date
попробуй так
Код

IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsDateTime = StrToDate(Edit1->Text);

просто помню с этим типом заморочки бывают, и IB7.0 жутко ругался, иногда приходилось делать строковым типом столбец...вот так!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Akella
Дата 7.12.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



IBDataBase1->IBDataSet1->FieldByName("A_PRICE_PIECE")->Asfloat = StrToFloatDef(Edit2->Text,0);

Добавлено @ 12:47 
IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsDate = StrToDateTime(Edit1->Text);

А лучше всего вместо TEdit использовать TDateTimePicker

IBDataBase1->IBDataSet1->FieldByName("A_DATE")->AsDate = DateTimePicker->Date;

Добавлено @ 12:48 
Цитата(vAnza @  7.12.2006,  03:04 Найти цитируемый пост)
база ругаеца.

база не может ругаться, ругаться может сервер
PM MAIL   Вверх
Rodman
Дата 7.12.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

AsBoolean// булевский
AsCurency// валютный
AsDateTime // дата/время
AsFloat //вещественный
Variant//различных типов

PM MAIL WWW Skype GTalk YIM MSN   Вверх
vAnza
Дата 7.12.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.11.2006
Где: Курск

Репутация: нет
Всего: нет



Спасиба за ответы, есть ещё вапрос один:

Цитата

IBDataBase1->IBDataSet1->FieldByName("A_PRICE_PIECE")->Asfloat = StrToFloatDef(Edit2->Text,0);


что значит "0" в конце строки?
И правельно ли вабще для цены, где после запятой два знака объявлять тип данных Double Precision? 

 

Это сообщение отредактировал(а) vAnza - 7.12.2006, 17:18
PM MAIL ICQ   Вверх
Romkin
Дата 8.12.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 14.11.2006
Где: Москва

Репутация: 1
Всего: 5



Цитата(vAnza @  7.12.2006,  17:07 Найти цитируемый пост)
И правельно ли вабще для цены, где после запятой два знака объявлять тип данных Double Precision? 

Зависит от диалекта БД. Если 3, то лучше numeric(18,2) (смело обращайся к нему asCurrency)

PM ICQ   Вверх
Akella
Дата 12.12.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(vAnza @  7.12.2006,  17:07 Найти цитируемый пост)
что значит "0" в конце строки?

Если при конвертировании текста Edit2->Text в тип с плавающей точкой произойдет исключение, то пользователь не увидит никаких "лишних" сообщений, а в поле
IBDataBase1->IBDataSet1->FieldByName("A_PRICE_PIECE")->Asfloat
запишется просто ноль.

F1 тебе в помощь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.