Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
Есть таблица s1 у нее уникальный индекс kds1 На добавлении записи в kds1 стоит '*' + recno('s1') С этим файлом работают разные пользователи... И вот один из них присылает мне испорченный архив... В архивном файле я вижу 2 одинаковых записи... record 20 kds1 = '*20' record 31 kds1 = '*20' Обе записи удаленные... Архив создается очень просто... Принцип:... copy s1 to .\Arxiv\s1_c создается бат файл который архивирует... При восстановлении соответсвенно возникает ошибка о неуникальности индексов... (kds1) И соответсвенно нет записей после 30... Принцип восстановления:... Бат файл разархивирует потом sele s1 append from .\Arxiv\s1_c Как такое может произойти??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 18:08 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
уник.ключ = '*'+str(recno()) - очень опасная вещь, не дай бог кто-то сделает Pack, все индексу - сразу смерть. А как в запись recno=31 записалось '*20' (Pack надеюсь никто не делал?) , то это надо код анализировать, который формирует значение ключа, и откуда он вызывается из приложения, из хранимой процедуры или это default value of field? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 12:19 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
andrew_Pr: уник.ключ = '*'+str(recno()) - очень опасная вещь, не дай бог кто-то сделает Pack, все индексу - сразу смерть Насчет уник.ключ я поторопился... Там стоит функция... В таблице для каждой табл. есть свое поле со значением ключа... например: для s1 Procedure new_id Parameters my_val_prish SEEK(my_val_prish,'tabl_kd','pole_kd') my_val = tabl_kd.my_kd tabl_kd.my_kd = tabl_kd.my_kd + 1 Return my_val уник.ключ s1 = '*'+alltrim(str(new_id('s1'))) откуда он вызывается из приложения, из хранимой процедуры или это default value of field? Вызывается из default value of field ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:15 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
Вообще-то надо IF rlock('tabl_kd') && Set reprocess to -1 my_val = tabl_kd.my_kd tabl_kd.my_kd = tabl_kd.my_kd + 1 end if Хотя странно, что разрыв между дублирующимися ключами не 1-2, а целых 10 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 12:44 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
Да и tabl_kd.my_kd = tabl_kd.my_kd + 1 естественно не прокатит. Я думаю, под этим имелось ввиду replace tabl_kd.my_kd with tabl_kd.my_kd + 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 12:59 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
andrew_Pr: Хотя странно, что разрыв между дублирующимися ключами не 1-2, а целых 10 записей. По-сути... такое произойди не должно??? Что делать с этим??? Исправлять я не могу... Так как привязано куча информации... Получится что где-то исчезнет... а где-то добавится лишняя информация... Если убивать все одинаковые... То боюсь пользователи не будут рады такому решению... Вот и сижу... как у разбитого КОРЫТА... Даже и не знаю че с этим делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 13:00 |
|
||
|
Что за глюк???
|
|||
|---|---|---|---|
|
#18+
> По-сути... такое произойди не должно??? я разве не понятно написал? видимо, два юзера одновременно считали одно и то же значение счетчика чтобы это не повторялось, операторы чтения и обновления счетчика нужно заключить внутри if rlock() ... endif unlock > Что делать с этим??? Придется вручную исправить ключ в данной записи и потом все ссылки на него. > Получится что где-то исчезнет... а где-то добавится лишняя информация... так сейчас , ведь то же лажа в БД получилась! один и тот же внешний ключ не понятно на какой из двух элем-тов справочника ссылается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32305996&tid=1597670]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
139ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 508ms |

| 0 / 0 |
