|
|
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Как поборать Update conflict? Есть таблица Table1, на основе этой таблицы сделано обычное представление vTable1, в которое добавлены все поля из Table1. На вкладке Update Criteria следующие установки: 1. Send SQL updates 2. Обновление всех полей, кроме ключевого. 3. SQL WHERE - Key and modified fields 4. Update using - SQL UPDATE При открытии формы в представление добавляются записи, через INSERT. Потом есть команда REPLACE ALL и вот на ней прога ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 14:24 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
забвл добавить: у таблицы Table1 5 режим буфферизации установлен в 5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 14:26 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
ругается на REPLACE ALL? или на tableupdate() ?? ругается до начала сохранения изменений? или когда Вы пытаетесь сохранить внесенные изменения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 15:56 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Скорее всего я просто не так что-то делаю. У меня таблица Table1 пока пустая. Записей там нет. Хочу сначала добавить/изменить записи в представление, а потом сбросить/обновить их в таблицу. Хотелось бы это реализовать через Send SQL updates представления, а не сбрасыванием данных из представления в таблицу в лоб через инсёрты и реплэйсы. Как лучше реализовать сиё? А ругается именно на реплэйс. До tableupdate() пока не дошёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 16:16 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Команда Replace по умолчанию обновляет записи в текущей рабочей области. Вы пытаетесь делать модификацию в таблице или во View? Буферизацию надо устанавливать на View, а не на исходную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 20:51 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Ну то, что буфферизировать надо представление до меня дошло :D Поставил 3-й тип буфферизации, что меня не устраивает. Хотелось бы 5-ый тип установить, но у меня данные из представления выводятся в иерархический грид, поэтому после добавления/удаления записи необходимо выполнять команду INDEX, чтобы данные отображались правильно, но ведь INDEX можно применять только при строчной буфферизации представления. И второй момент как раз связан с добавлением новой записи. Выполняю INSERT, добавляется новая запись. Соответственно она добавляется в представление со значением ключевого поля равным 0, но записи в самой таблице с таким ключом ещё нет. И когда я начинаю менять эту новую добавленную запись REPLACE'ом, то выходит Update conflict. Вобщем, моск уже кипит как лучше сделать. Может ктонить посоветует чегонить дельное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 23:00 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Создавать индекс командой INDEX надо всего-лишь один раз при открытии View. После этого переключить View в 5 режим буферизации и спокойно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 00:58 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
теперь работется спокойно :)) но вот только обновления данных в таблице не происходит... открываю форму, в представлении vTable1 добавляю/удаляю/изменяю записи и при закрытии формы, т.е. тогда, когда необходимо сбросить данные из предствления в таблицу Tables1, они не сбрасываются... В ините формы открываю представление, устанавливаю Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. и ничего не обновляется.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 15:55 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
Это в init перенеси: Код: plaintext 1. 2. 3. 4. 5. Это при сохранении: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 16:12 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
А лучше один раз все необходимые настройки для представления сделай, после создания. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 16:20 |
|
||
|
Обновление представления
|
|||
|---|---|---|---|
|
#18+
разобрался, тема закрыта.... ну вобщем в конструкторе установил все свойства представления, открыл представление, проиндексировал его, а потом установл CURSORSETPROP("Buffering", 5, "vTables1")... при закрытии формы сделал TABLEUPDATE(.T., .T., "vTables1") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 18:29 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1588005]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 441ms |

| 0 / 0 |
