Автор | Сообщение |
|
| |
Пост N: 40
Зарегистрирован: 08.04.06
|
|
Отправлено: 05.11.06 03:07. Заголовок: Прога слетает на append и append from
Clipper 5.2e + SixCdx2 + Blinker 7.0 + Protected mode При достаточно большом количестве добавляемых записей (в интервале 150 - 500, всегда по разному) прога слетает с сообщением типа: BLX286: 1313: General Protection Fault либо: DBSKIP(0) Внутренняя ошибка 1210 Отключаю от базы индексы - и всё прекрасно! Но в том-то всё и дело, что индекс нужен, чтобы не добавить то, что в базе уже есть (идёт проверка DBSEEK())... Кто-нибудь с таким фокусом сталкивался? Как бороться?
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 48
Зарегистрирован: 08.04.06
|
|
Отправлено: 09.11.06 02:02. Заголовок: Ответ SergeJa
SergeJa пишет: цитата: | USE qqq.dbf SHARED ALIAS A1 INDEX ON A1->Fld TO qqq.NTX USE qqq.dbf SHARED ALIAS A2 SET INDEX TO qqq.NTX Понятно, или надо подробнее? |
| Ничего не понятно... Одна и та же база, один и тот же индекс... Я говорил о ситуации, когда в двух разных базах (если непонятно - двух разных dbf-файлах) есть поле с одинаковым названием (например, поле NAZV в dbf-файле KNIGY.DBF и поле NAZV в dbf-файле SKLAD.DBF), если делать ключевые выражения без алиасов, то при работе и с одной и с другой базой индексы начинают рушиться. SergeJa пишет: цитата: | цитата: грохается на индексах, в ключах которых непреобразованные поля И...? |
| И ничего пока... Попробовал PADR(), как в первом и четвёртом индексах - не помогло! Может, действительно дело в длине индексной строки? Она получается 90 (NAZV) + 28 (AVTOR) = 118 символов... может, всё нормализуется именно тогда, когда я делаю ширину поля NAZV в базе 70 символов и длина строки получается 98 символов?
|
|
|
|
| |
Пост N: 1
Зарегистрирован: 09.11.06
|
|
Отправлено: 09.11.06 14:40. Заголовок: Юра
Пользуй commit каждые n записей...
|
|
|
|
| |
Пост N: 49
Зарегистрирован: 08.04.06
|
|
Отправлено: 11.11.06 01:49. Заголовок: Всем! Всем! Всем!
Путём многочисленных экспериментов выяснил, что Dima был абсоблютно прав - всё дело в длине индексного выражения! Если длина индексного выражения больше 117, то прога рано или поздно грохается (причём скорее рано, чем поздно :-( В моем примере с длиной индексного выражения 118 по append from вообще ни одной записи принять не удаётся! armik пишет: цитата: | Пользуй commit каждые n записей... |
| Поэтому разговор об n записях теряет всяческий смысл...
|
|
|
|
| |
Пост N: 464
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.06 08:34. Заголовок: Re:
Лукашевский пишет: цитата: | Если длина индексного выражения больше 117 |
| У меня падало и при длине 80....... Решить проблему смог только путем уменьшения длины ключа.
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|