|
|
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
Есть ДВ с мультитабличным источником. Во всех таблицах источника есть вычисляемые (Computed) поля, которые отображаются в ДВ. После Update значения этих полей в базе изменяются. Как мне отобразить новые значения этих полей для текущей строки ДВ. Конструкция типа - dw.ReselectRow(dw.getrow()) не подходит, т.к. этот метод обновляет только поля dw со статусом Update=Yes или типа TimeStamp и только для таблицы, которая имеет статус изменяемой (что в принципе - логично). Как мне отобразить новые значения вычисляемых полей базы для текущей строки ? Может кто уже сталкивался с этой проблемой ? Подскажите решение или направьте на путь истинный ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 11:13 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
я для этого случая написал сервис, к. включается по потребности в DW и перечитывает: строчку, маркированные строки или все строки, используя SQL из DW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 11:23 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
PaulJBКак мне отобразить новые значения вычисляемых полей базы для текущей строки ? Может кто уже сталкивался с этой проблемой ? Выполнить весь запрос заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 11:31 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
pjanriя для этого случая написал сервис, к. включается по потребности в DW и перечитывает: строчку, маркированные строки или все строки, используя SQL из DW. Делал в свое время тоже самое. IMHO, единственное универсальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 12:20 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
AndrewNДелал в свое время тоже самое. IMHO, единственное универсальное решение. В автоматическом режиме для любого запроса? Для этого, как минимум, нужно иметь SQL парсер + каким-то образом задавать способ идентификации строки (а его просто может и не быть). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 13:02 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
авторя для этого случая написал сервис, к. включается по потребности в DW и перечитывает: строчку, маркированные строки или все строки, используя SQL из DW. Я уже думал в этом направлении, но не знаю с какой стороны подступиться ... Вот если бы исходничек ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 13:11 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
А может стоит сделать мастер-деталь. В мастере редактируешь и апдейтишь, а в детали, соответственно, видишь все прямые и косвенные изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 13:41 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
Локшин Марк AndrewNДелал в свое время тоже самое. IMHO, единственное универсальное решение. В автоматическом режиме для любого запроса? Для этого, как минимум, нужно иметь SQL парсер + каким-то образом задавать способ идентификации строки (а его просто может и не быть). Смотря для какой СУБД. Под ASA у меня заточенный DataWindow как раз имеет метод ResynchRow, который синхронизирует запись по значению полей ключа, который описывается в DW как стринговое поле перечисления через запятую уникальных имен полей. Из DW список PK не беру, так как может быть не обновляемым или не соотвествующим. В итоге код выглядит примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 15:06 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
ASCRUSСмотря для какой СУБД. Под ASA у меня заточенный DataWindow как раз имеет метод ResynchRow, который синхронизирует запись по значению полей ключа, который описывается в DW как стринговое поле перечисления через запятую уникальных имен полей. Из DW список PK не беру, так как может быть не обновляемым или не соотвествующим. В итоге код выглядит примерно так: А если, например, запрос с UNION ALL ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 16:29 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
гм, сгенериться: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. P.S. Кстати в ASA как раз есть функция REWRITE(), которой в параметре передается текст запроса и на выходе выдает версию запроса, переработанную оптимизатором - очень полезно подсматривать, как красиво и правильно писать запросы, соединять таблицы и оптимизировать условия. К примеру есть не NULL связь один ко многим PK Table1-FK Table2: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 21:39 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
ASCRUSгм, сгенериться: Ну в принципе да. Хотя такие преобразования могут и запутать оптимизатор. На MS SQL 2000 мне удавалось его так запутать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 10:44 |
|
||
|
И снова: Как перечитать строку из базы ?
|
|||
|---|---|---|---|
|
#18+
Локшин Марк ASCRUSгм, сгенериться: Ну в принципе да. Хотя такие преобразования могут и запутать оптимизатор. На MS SQL 2000 мне удавалось его так запутать :) У нас тьфу тьфу с этим все тип-топ, с выходом новых ежемесячных EBF за 2005 год я даже как то отучился план запросов смотреть, пару раз правда консультровал людей по присылаемым ими планам запросов, для ускорению выборки на таблицах с десятками миллионов записей, где соединения и фильтры запутанно накладывались и индексов подходящих не было, в итоге оптимизатор уводил большие таблицы на скан, что естественно выливалось в приличное время выполнения запроса (порядка 40 сек). Через виртуальные индексы вычислили наиболее оптимальный индекс, сделали его, переписали одно соединение, уводя его из основного плана в subquery и запрос стал летать, убрав скан с таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 11:11 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=74&tid=1337892]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 360ms |

| 0 / 0 |
