Форум: "Базы";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];
ВнизЕсли в SQL функции типа FloatFormat? Найти похожие ветки
← →
aw (2002-04-17 18:42) [0]Такая проблема: select field1/filed2 выводит значение типа 5.6666666... Как оставить только 2 знака после зпт?
← →
Anatoly Podgoretsky (2002-04-17 18:46) [1]select никуда не выводит, поэтому там это не нужно
← →
aw (2002-04-17 18:55) [2]Ситуация такова. Есть Query и DBGrid куда выводятся данные из этого запроса. Как тогда сделать чтобы в DBGrid всё выводилось OK. Ситуация усложняется тем что кол-во колонок заранее не известно.
← →
Anatoly Podgoretsky (2002-04-17 19:00) [3]Сканируй FieldDef и устанавливай DisplayFormat 0.00
← →
aw (2002-04-17 19:04) [4]я не использую FieldDef. колонки добавляю "alter table add"
← →
sniknik (2002-04-17 19:29) [5]хочеш сказать так не получается?
ALTER TABLE Names ADD ChVozv NUMERIC(16,2)
← →
Reindeer Moss Eater (2002-04-17 19:39) [6]перед открытием запроса получи метаданные в FieldDefs.
Пройди по нему и если поле ftFloat и иже с ним, то при создании TField"a установи DisplayFormat := "0.00"
Как тебе уже сказали (Anatoly Podgoretsky)
← →
Anatoly Podgoretsky (2002-04-17 19:40) [7]Проблема не в этом, а какой тип поля будет использоваться, как я понимаю ftFloat?
← →
Coty (2002-04-17 21:33) [8]Не знаю про все SQL-сервера, но в большинстве есть функция round
select round(field1/field2,2)...
← →
coty (2002-04-17 21:34) [9]В большинстве SQL-серверов есть функция ROUND.
select round(field1/field2,2) ...
← →
sniknik (2002-04-17 23:39) [10]в Pervasive есть приведение к формату SELECT FLOAT8/INT2 [ZZZZZZ.ZZ] FROM table1
ну и что? в Local SQL нет, а именно он используется в данном случае. Так? Если используется Jet для доступа то все меняется (функций больше).
а какая разница какого типа поле? ftFloat (есть деление точно будет ftFloat)или целое, отображатся все одно будет по заданному формату.
← →
Anatoly Podgoretsky (2002-04-18 00:03) [11]Вот поэтому никакие round не помогут, так как Float, а не Fixed, DisplayFormat наоборот поможет рещить эту проблему
← →
Ph.D.Kot (2002-04-18 08:43) [12]RE: Ситуация такова. Есть Query и DBGrid куда выводятся данные из этого запроса. Как тогда сделать чтобы в DBGrid всё выводилось OK. Ситуация усложняется тем что кол-во колонок заранее не известно.
устанавливаешь TDadaSource привязываешь его к совему квери параметром TDadaSource.DataSet:=ТвойQuery;
а TDBGrid привязываешь к TDadaSourse параметром TDBGrid.DataSource:=TDadaSource.... и потом становится абсолютно пофиг сколько у тебя колонок в в результате запроса, да и сколько на самом деле строк тоже ,-))
← →
Johnmen (2002-04-18 09:13) [13]select ..., cast(100.0*field1/filed2 as integer) / 100.0 as myfield from ...
хотя я бы не только округлял, если надо, но и обязательно, как было сказано, DisplayFormat делал...
← →
alexadvanser (2002-04-18 10:06) [14]Johnmen молодец...
← →
aw (2002-04-18 10:30) [15]>перед открытием запроса получи метаданные в FieldDefs.
>Пройди по нему и если поле ftFloat и иже с ним, то при создании >TField"a установи DisplayFormat := "0.00"
>Как тебе уже сказали (Anatoly Podgoretsky)
Чего-то никак не получается так сделать. Объясните, пожалуйста, поподробнее. Как при создании TField"a установить DisplayFormat := "0.00"?
← →
Reindeer Moss Eater (2002-04-18 11:02) [16]var aField:TField;
Query1:TQuery;
begin
Query1:=TQuery.Create(nil);
with Query1 do
begin
SQL.Text:="Select * from MyTableName";
FieldDefs.Update;
for i:=0 to Pred(FieldDefs.Count) do
begin
aField:=FieldDes[i].CreateField(Query1);
if aField.DataType = ftFloat then
TNumericField(aField).DisplayFormat:="0.00";
end;
end;
← →
Anatoliy (2002-04-18 14:18) [17]В Sybase все просто:
select cast(field1/field2 as numeric(10,2)) as "My Field" from...
или
select cast(field1/field2 as decimal(10,2)) as "My Field" from...
а DisplayFormat - прямая зависимость от приложения!
← →
Alexander Vasjuk (2002-04-18 16:06) [18]Anatoliy © (18.04.02 14:18)
> select cast(field1/field2 as numeric(10,2)) as "My Field" from...
100.001 например выведется как 100 а не как 100.00
Поэтому придется зависеть от приложения.
(Либо превращать число в текст, я бы сказал извращать)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c