Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизДобавить поля в DataSet после выборки данных Найти похожие ветки
← →
Shaman_ © (2006-09-15 16:10) [0]Делаю выборку данных
в полученому DataSet нужно локально добавить еще несколько полей. Добавляю их через TFiedDefs.add... и TFieldDefs.CreateField... Перед добавлением полей, набор данных приходится переводить в неактивное состояние. Как после добавления полей можно снова вернуть его в активное состояние? Простое Active := true будет повторно запрашивать данные из базы
← →
Reindeer Moss Eater © (2006-09-15 16:18) [1]Ну а зачем открытвать преждевременно, предварительно не добавив нужные поля?
← →
MsGuns © (2006-09-15 16:50) [2]"Лишние" поля лучше создавать в самом запросе:
Select *, cast(1 as decimal(18,4)) as Quant,
cast("" as char(40)) as FIO,
.....
from table
← →
Shaman_ © (2006-09-15 17:43) [3]Guns © (15.09.06 16:50) [2]
немного не понял . Причем здесь функция CAST - преобразование типов?
← →
MsGuns © (2006-09-15 17:50) [4]>Shaman_ © (15.09.06 17:43) [3]
>немного не понял .
Тогда так: дополнительные поля создаются в датасете для отображения некоторых данных, непосредственно отсутствующих в таблицах БД. Например, расчетные. Вы пытаетесь создать и заполнить их "клиентским" способом, в результате чего при переоткрытии НД надо снова повторять сканирование и расчет всего НД. То же самое в 99% случаях можно "заставить" сделать сервер, должным образом модифицировав запрос к базе данных.
>Причем здесь функция CAST - преобразование типов?
Если не использовать это слово, то "сервер" интерпретирует тип полей, заданных константами, как ему заблагорассудится. Чтобы не было неожиданностей, надо явно указать тип данных каждого дополнительно создаваемого в запросе столбца. В T-SQL, Local SQL и некоторых других, для этих целей вполне подходит CAST
← →
Shaman_ © (2006-09-15 18:02) [5]MsGuns © (15.09.06 17:50) [4]
Cуть то понятна. Зачем же так разжевывать :) Не яснен был (и есть) общий синтаксис. Наверно стоит указать что реализую это дело на MySQL. Как не извращаюсь, СУБД не понимает такого синтаксиса
← →
Shaman_ © (2006-09-15 18:20) [6]MsGuns ©
Все вроде работет. Просто неверно указывал тип данных. Посмотрел сейчас допустимые типы CAST функции для MySQL и все встало на свои места
Спасибо за помощь!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c