Magistr(ru) |
Отправлено: 24.07.2003, 21:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Как задать тип вычисляемого поля Many(деньги) на SQL или чтобы цифра округлялась до двух знаков после запятой? |
|
Nick |
Отправлено: 25.07.2003, 05:04 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Какая база. Если IBase — подскажу. |
|
Young Coder |
Отправлено: 25.07.2003, 22:55 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 34
|
QUOTE (Magistr(ru) @ 24/07/2003, 22:57) | Как задать тип вычисляемого поля Many(деньги) на SQL или чтобы цифра округлялась до двух знаков после запятой? |
Однако, сэр.. Вы вопрос ставите — ничего не понятно, но могу сказать что Many — это много, а деньги этo money. Хотя можно и Many money.
А если серьезно — задайте вопрос правильно, плиз.
|
|
Magistr(ru) |
Отправлено: 29.07.2003, 05:07 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Как задать тип вычисляемого поля Money(деньги) на SQL или чтобы цифра округлялась до двух знаков после запятой?(Paradox)
Фрагмент кода: хочу округлить вычисляемое поле Сумма
Query1->SQL->Clear();
Query1->SQL->Add("select c.KNAME ,a.PP,b.DATNAK,NNAK,sum(CENA*KOL_NAKL) AS Сумма");
Query1->FieldByName(Сумма)->Precision=2;
Query1->SQL->Add("from NAK_SP03.db b , BNAKL.db a , M_SPARTN.db c");
Query1->SQL->Add("where a.NNAK=b.NNAK and a.DATNAK=b.DATNAK and a.PARTN=c.PARTN AND b.TDATA='02'");
Query1->SQL->Add("GROUP BY b.NNAK,b.DATNAK,a.PP,c.KNAME ");
Query1->SQL->Add("ORDER BY b.DATNAK");
Query1->Open();
Выдаёт ошибку типа: Precision не является типом Tfield…
[FONT=Geneva] |
|
Nick |
Отправлено: 31.07.2003, 05:24 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
QUOTE (Magistr(ru) @ 29/07/2003, 06:09) | Как задать тип вычисляемого поля Money(деньги) на SQL или чтобы цифра округлялась до двух знаков после запятой?(Paradox)
Фрагмент кода: хочу округлить вычисляемое поле Сумма
Query1->SQL->Clear();
Query1->SQL->Add("select c.KNAME ,a.PP,b.DATNAK,NNAK,sum(CENA*KOL_NAKL) AS Сумма");
Query1->FieldByName(Сумма)->Precision=2;
Query1->SQL->Add("from NAK_SP03.db b , BNAKL.db a , M_SPARTN.db c");
Query1->SQL->Add("where a.NNAK=b.NNAK and a.DATNAK=b.DATNAK and a.PARTN=c.PARTN AND b.TDATA='02'");
Query1->SQL->Add("GROUP BY b.NNAK,b.DATNAK,a.PP,c.KNAME ");
Query1->SQL->Add("ORDER BY b.DATNAK");
Query1->Open();
Выдаёт ошибку типа: Precision не является типом Tfield…
[FONT=Geneva] |
Наверно так:
Query1->SQL->Clear();
Query1->SQL->Add("select c.KNAME ,a.PP,b.DATNAK,NNAK,sum(CENA*KOL_NAKL) AS Сумма");
// Query1->FieldByName(Сумма)->Precision=2; // Запрос не полностью сформировант
Query1->SQL->Add("from NAK_SP03.db b , BNAKL.db a , M_SPARTN.db c");
Query1->SQL->Add("where a.NNAK=b.NNAK and a.DATNAK=b.DATNAK and a.PARTN=c.PARTN AND b.TDATA='02'");
Query1->SQL->Add("GROUP BY b.NNAK,b.DATNAK,a.PP,c.KNAME ");
Query1->SQL->Add("ORDER BY b.DATNAK");
Query1->FieldByName("Сумма")->Precision=2;
Query1->Open();
|
|
Magistr(ru) |
Отправлено: 02.08.2003, 04:34 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Все равно выдаёт ошибку.Пробовал
Query1->SQL->Add("select c.KNAME ,a.PP,b.DATNAK,NNAK,ROUND(sum(CENA*KOL_NAKL),2) AS- пишет "Copability not supported".
Может как-то по другому? |
|
Admin |
Отправлено: 02.08.2003, 15:08 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Так вам надо, чтобы где было 2 цифры после запятой ?
Если при выводе данных — то округляйте до 2 цифр
выводимые данные, если перед помещением в базу — тоже,
если хотите чтобы в базе хранилось — ничего не получится,
в базе число хранится в своем формате.
Задаете формат поля MONEY (в PARADOX).
Если нужно, чтобы при выводе в DBGrid округлялось до двух
цифр после запятой, задайте у объекта этого поля
свойство currency в true
|
|
Magistr(ru) |
Отправлено: 02.08.2003, 15:23 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Я не могу в Table зделать тип поля Money, т.к. это поле-вычисляемое поле и оно в Table не заносится |
|
Admin |
Отправлено: 03.08.2003, 22:00 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Значит делаете его тип Currency,
вот и будет 2 цифры после запятой
|
|