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

Добавим поле 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
05.11.2003, 13:16
    #32316025
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поля типа fkCalculated - как сделать, что бы они считались только тогда, когда я захочу.
Странно как то ты с вычисляемыми полями работаешь. Обычно, вычисляемые поля считаются в обработчике OnCalcFields. А установка свойства AutoCalcFields в False заставляет компонент не при каждом чихе пользователя вызывать твой обработчик OnCalcFields. Вообщето это событие вызывается

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

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

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

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

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


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


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

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

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


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