Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.09.2004, 11:44
|
|||
|---|---|---|---|
|
|||
Проблемы с уникальным ключом в грид |
|||
|
#18+
Здравствуйте! Помогите разобраться с одной проблемой. Vfp6. У меня есть свободная таблица, на ее основе существует представление, которое является источником данных для грида. Два первые столбца в сетке содержат уникальный индекс. При попытке изменения одного из ключевых полей таким образом, чтобы нарушить уникальность индекса возникает ошибка Uniqueness of index primary is violated. И несколько кнопок. Если я нажимаю revert, то сделанные изменения отменяются. Как программно сделать перехват и отмену сделанных измений? Если я вставляю эту функцию в метод Error для грида, то Фокс пишет Fuction requires row or table buffering mode. Хотя в dataenviroment у представления установлен buffermodeoverride=3. Пробовал через командное окно задавать cursorsetprop 3 или 5. Не помогает. Если вешать функцию tablerevert() на кнопки то все нормально работает. Подскажите, что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.09.2004, 11:53
|
|||
|---|---|---|---|
Проблемы с уникальным ключом в грид |
|||
|
#18+
Уникальный индекс построен для View или для исходной таблицы? К сведению: -) View можно индексировать только если оно находится в режиме строковой буферизации (3). После построения индекса можно переключиться в режим табличной буферизации (5) -) Контроль уникальности значений индекса производится уже в буфере. Т.е. установка режима табличной буферизации не подавит сообщение о нарушении уникальности (если речь идет об индексе View) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.09.2004, 12:21
|
|||
|---|---|---|---|
|
|||
Проблемы с уникальным ключом в грид |
|||
|
#18+
Проиндексирована свободная таблица с ключом candidate. Сам view не индексированный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.09.2004, 12:36
|
|||
|---|---|---|---|
Проблемы с уникальным ключом в грид |
|||
|
#18+
по поводу отмены изменений попробуйте использовать буферизацию и BEGIN TRANSACTION TableUpdate, tablerevert и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.09.2004, 13:28
|
|||
|---|---|---|---|
Проблемы с уникальным ключом в грид |
|||
|
#18+
Andrey_RbПроиндексирована свободная таблица с ключом candidate. Сам view не индексированный. Тогда общая логика следующая: 1) Переключаешь View в режим табличной буферизации (это надо сделать ДО начала внесения изменений) 2) В кнопке "Сохранить" примерно такой код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Поскольку ты используешь свободные таблицы, то транзакция здесь не сработает (транзакция работает только с таблицами включенными в базу данных. Со свободными таблицами только с версии VFP9). Т.е. невозможно сделать сохранение по типу "все или ничего". Буферизация такого не позволяет сделать. Часть информации сброшенная до возникновения ошибки тем не менее попадет в исходную таблицу. Поэтому приходится писать лог ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.09.2004, 13:50
|
|||
|---|---|---|---|
|
|||
Проблемы с уникальным ключом в грид |
|||
|
#18+
Спасибо! я уже разобрался. Оказывается фокс при ошибке менял текущую рабочую область и поэтому tablerevert срабатывала для свободной таблицы. Теперь жестко прописал алиас представления и все заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1595750]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 393ms |

| 0 / 0 |
