Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];

Вниз

Не происходит RefreshRecord в Oracle   Найти похожие ветки 

 
Тфьу   (2007-05-31 13:40) [0]

Использую DOA
Мне надо обновить одно значение.
//qItems.FieldByName("normal_qty").AsInteger = 153
В TOracleDataSet на OnApplyRecord делаю:
 if Action="R" then
 begin
   qItemsRefresh.SetVariable("unit_id",qItems.GetVariable("session_id"));//unit_id поля нет в qItems
   qItems.DeclareQueryVariables(qItemsRefresh);
   qItems.SetQueryVariables(qItemsRefresh);
   qItemsRefresh.Execute;
//qItems.FieldByName("normal_qty").AsInteger = 153
//qItemsRefresh.FieldAsItneger("normal_qty") = 152
   qItems.GetQueryVariables(qItemsRefresh);
//qItems.FieldByName("normal_qty").AsInteger = 153
   Applied:=True;
 end;

В чем подстава? Почему не обновляется?


 
ANB ©   (2007-05-31 13:51) [1]


> В чем подстава? Почему не обновляется?

Не вижу рефрешрекорда. Насколько я помню, чтобы в DOA работал рефрешрекорд нужно явно затянуть в запросе rowid. И тогда нужно просто вызвать метод.
К чему этот код - непонятно.


 
Тфьу   (2007-05-31 14:05) [2]

Если в запросе агрегирующие функции или union, то Refresh по rowid не работает (RTFM Allroundautomations) приходится самому писать RefreshSQL и вот этим синтаксисом он должен из RefreshSQL подтягивать данные. Но не подтягивает. :(

Если тебе интересен именно рефрешрекорд то он вызывается просто из кода на:
qItems.RefreshRecord

Я привел тут только эвент OnApplyRecord


 
Sergey13 ©   (2007-05-31 14:09) [3]

> [2] Тфьу   (31.05.07 14:05)
> Если в запросе агрегирующие функции или union

Тогда что ты там меняешь?


 
Тфьу   (2007-05-31 14:20) [4]

У меня есть запрос вида:

select item_id, item_name, normal_qty
from
(
select item_id, sum(normal_qty) normal_qty
from norm_values
where unit_id = :unit_id
) v, dict_norm d
where d.item_id = v.item_id

мне надо normal_qty обновить для определенного item_id

Я пишу RefreshSQL:
select sum(normal_qty) normal_qty
from norm_values
where unit_id = :unit_id
 and item_id = :item_id


 
Sergey13 ©   (2007-05-31 14:36) [5]

> [4] Тфьу   (31.05.07 14:20)
> У меня есть запрос вида:

И он работает? Сомнительно мне что-то.


 
Тфьу   (2007-05-31 14:51) [6]

select d.item_id, d.item_name, v.normal_qty
from
(
select item_id, sum(normal_qty) normal_qty
from norm_values
where unit_id = :unit_id
) v, dict_norm d
where d.item_id = v.item_id

Вот так работает. Я просто не хочу тут приводить полный запрос на полторы страницы.

Народ, если вы не знаете, как делается RefreshRecord в DOA, а тем более сделанный через DeptAPI - не флудите тут.


 
Тфьу   (2007-05-31 15:05) [7]

Сам нашел в чем дело.
GetQueryVariables ,берет значения только из параметров. Поэтому пришлось делать практологически:

select sum(normal_qty) normal_qty
from norm_values
where unit_id = :unit_id
and item_id = :item_id
 and (1=1 or :normal_qty = :normal_qty)

А OnApplyRecord:

 qItemsRefresh.SetVariable("unit_id",qItems.GetVariable("session_id"));
  qItems.DeclareQueryVariables(qItemsRefresh);
  qItems.SetQueryVariables(qItemsRefresh);
  qItemsRefresh.Execute;
 qItemsRefresh.SetVariable("normal_qty",qItemsRefresh.FieldAsInteger("normal_qty" ));
  qItems.GetQueryVariables(qItemsRefresh);

Вот так все работает.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.047 c
2-1189493120
JetuS
2007-09-11 10:45
2007.10.07
Как изменить ресурсные строки в EXE-файле?


2-1189079996
Олег Волков
2007-09-06 15:59
2007.10.07
Нужна помощь по ProgressBar


15-1189094106
Ezorcist
2007-09-06 19:55
2007.10.07
portable delphi?


6-1170483971
lightix
2007-02-03 09:26
2007.10.07
TidTelnet (Indy9) вешает программу


2-1189505304
нико-лай
2007-09-11 14:08
2007.10.07
ReadLn +Double





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский