powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
14 сообщений из 14, страница 1 из 1
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32315562
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADODataset.
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32315574
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть свойство - AutoCalcFields поставь его в False.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32315602
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну предположим. ТОгда как объяснить следующее:

Добавим поле qqqq типа fkCalculated.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShowMessage(ADOQuery1qqqq.AsString); // покажет: ''
ADOQuery1.AutoCalcFields:=False;
ADOQuery1.Edit;
ADOQuery1qqqq.AsString:='1111';
ShowMessage(ADOQuery1qqqq.AsString); // покажет: '1111'
ADOQuery1.Post;

ShowMessage(ADOQuery1qqqq.AsString); // покажет: ''
end;


Т.е. я не заметил никакой разницы от свойства AutoCalcFields
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316025
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно как то ты с вычисляемыми полями работаешь. Обычно, вычисляемые поля считаются в обработчике OnCalcFields. А установка свойства AutoCalcFields в False заставляет компонент не при каждом чихе пользователя вызывать твой обработчик OnCalcFields. Вообщето это событие вызывается

1. При открытии набора
2. При переводе набора в режим редактирования
3. При выборке записи из базы данных
4. При переходе с одного контрола на другой или с колонки на колонку в гриде.

Установка AutoCalcFields в False не будет генерить событие OnCalcFields для четвертого условия. Если уж совсем нужно отключать вычисления, то установи этот обработчик в nil, а в нужный момент подставь ссылку на процедуру пересчета, и вызови Edit\Post.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316126
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin спасибо.
Это я все знаю. А как мне сделать поле которое было бы не связано физическим полем в таблице. fkCalculated не устраивает потому, что его можно изменять только OnCalcFields, при чем перед вызовом этого события все fkCalculated поля обNullяются.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316156
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе фиктивное поле что-ли нужно? Ну дык и добавь его в запрос

Код: plaintext
1.
SELECT Table1.*,  0  AS MyDummyField
FROM Table1

И делай че хошь с этим полем. А лучше бы задачу для чего такое поле понадобилось описал.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316248
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фиктивное поле из SELECT 0 from ... возможно редактировать только в disconnected dataset. Я сам не пробовал, но здесь сообщений об удачных опытах еще не было. Как вариант - создавать временную таблицу с добавленным полем. Calculated поле никоим образом не может быть запомнено в датасете.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316252
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это если с ADO работать, то да. Оно не даст этого сделать. Зато как здесь многие с пеной у рта его хвалят.
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316301
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если adLockBatchOptimistic, то решение уже давно известно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select * from (
   select distinct
      ID,
      A_ID = cast( 0  as smallint)
   from
 . . .
)Q
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316319
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет уж, увольте от таких решений. :-) Из обычного селекта городить такой огород, и для чего, чтоб всеми так любимое ADO дало возможность редактировать поле. Ха...
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316427
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ZrenBy
SQL2000 нельзя использовать такую конструкцию.


2All
Так что, других решений для ADO нет?
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32316438
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Deff
>>SQL2000 нельзя использовать такую конструкцию


Льзя
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32317003
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А речь-то про SELECT, где ОДНО поле дополнительное. Это как ?
...
Рейтинг: 0 / 0
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
    #32317290
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2000 нельзя использовать такую конструкцию

Почему нельзя? Я использую подобный подход - правда, такие поля во view вынесены

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]