Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при доступе к таблице в gdb-базе [D5, IB6.x]


anatoly_guz ©   (2002-08-27 20:37:00) 

Уважаемые мастера, срочно нужно узнать, что за ошибку выдает Интербейз при попытке навигации в таблице: "I/O error for file "c:\MyBase.gdb". Error while trying to read from file unknown Win32 error 38". Причем в базе несколько примерно одинаковых таблиц, но ошибка возникает только на одной из них. Интересует, что это значит и как с этим бороться. Не поленитесь и дайте хотя-бы направление, в каком надо копать. Лечится сие только выгрузкой метаданных вместе с данными и загрузкой в новую базу, а хотелось бы это сделать покрасивее.


Alexandr   (2002-08-30 08:47:00) [1]

Через IBConsole, например посмотреть можно


Sergey_   (2002-08-29 11:29:00) [2]

anatoly_guz Извини за чайниковский вопрос, но как бы мне проверить, работает ли у меня в программе этот самый "Force Writes"?

Force Writes в программе не работает. Это одно из свойств самой БД.


Anatoly Podgoretsky   (2002-08-29 09:08:00) [3]

anatoly_guz (28.08.02 15:09)
Достаточно, но какое это имеет отношение к целостности файлов?


Alexandr   (2002-08-29 07:22:00) [4]

1) недостаточно
2) прав, но тут другой уровень. У тебя база повредилась не на логичеком уровне, а не файловом. Это примерно как если те например писал-писал, а потом у тебя чернила в ручке кончились, и мысль свою ты уже забыл...


Азазелло   (2002-08-28 15:30:00) [5]

Анатолий, по моему Вам стоит сходить на http://www.ibase.ru.Я думаю там Вы найдете достаточно ответов на эти, а также ещё не возникшие вопросы.
По-поводу базы, думаю backup/restore в данном случае не помогут.
Впредь рекомендую иметь забакапленную-отресторенную и проверенную на целостность базу на каждый день, или, если работа ведется очень интенсивная, на каждый час.

С уважением, Игорь.


anatoly_guz   (2002-08-28 15:09:00) [6]

Извини за чайниковский вопрос, но как бы мне проверить, работает ли у меня в программе этот самый "Force Writes"? Разве "Commit" недостаточно? При этом также задейтвован механизм транзакций. По логике, при отключении питания транзакция должна откатиться автоматом. Или я не прав?


Alexandr   (2002-08-28 07:54:00) [7]

покрасивее никак.
Это действительно битый файл.
И виновата в этом
1) Отсутствие Force Writes
2) ОС
3) Внезапное отключение питания
4) Плохой винт
и пр.

Кстати, в этом списке Interbase нет.


Иван Шихалев   (2002-08-28 00:13:00) [8]

Это означает битый файл базы. Ошибка 38 - достигнут конец файла, когда его никто не ждал.


Наверх

Титульная страница Поиск, карта сайта Написать письмо