Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.01;
Скачать: CL | DM;

Вниз

Переиндексация....   Найти похожие ветки 

 
z_1   (2002-06-05 23:25) [0]

Мастера...HELP!!!
Индексные файлы при сбоях могут наворачиватся. Но я нигде не смог найти информацию как они могут востанавливатся

Кто знает, как восстановить индексы у файлов
*.db пожалуйста, откликнитесь.


 
app ©   (2002-06-05 23:28) [1]

DbiRegenIndex


 
z_z   (2002-06-05 23:35) [2]

app...

а по подробнее....

у меня есть файл *.db как востановить связи...
если не трудно, что как и куда...

За ранее спасибо...


 
Anatoly Podgoretsky ©   (2002-06-05 23:44) [3]

Ты хелп и пример смотрел, что в нем непонятно?


 
z_z   (2002-06-05 23:53) [4]

Anatoly Podgoretsky

я извиняюсь, но в БД я новичок...
испортился один somefile.db и как его востановить я не знаю((
а до завтра нужно...по шеи надают...

даже чем пользоваться не знаю..((
Помогите...плиз..


 
Anatoly Podgoretsky ©   (2002-06-06 00:02) [5]

Так тебе не программировать нужно, а ремонтировать.
Запусти Datanbase Desktop


 
z_z   (2002-06-06 00:29) [6]

Anatoly Podgoretsky

Извеняюсь за глупый вопрос но в чем заключается ремонт?


 
Anatoly Podgoretsky ©   (2002-06-06 00:38) [7]

В перестройке порушенных индексов, согласно твоего вопроса, DBD эту функцию делает


 
Anatoly Podgoretsky ©   (2002-06-06 00:40) [8]

Пункт Pack Table


 
z_z   (2002-06-06 00:47) [9]

Anatoly Podgoretsky...

что то я вобще не пойму ничего..((как определить который порушен?
да еще с кодировками проблемы...((


 
Dennn_is   (2002-06-06 08:02) [10]

Регенерация индексов таблицы Базы Данных (проверялось только на файлах DBF)
Нужно подключить модули :
DBTables, DB, dbiProcs,DbiErrs,dbiTypes;
Здесь, если NrErr>0 , то вывод на экран сообщения об ошибке (если была ошибка).


function TableRegenIndexes(NrErr : byte;Tbl : TTable) : Boolean;
Var
YesEx,YesAct : byte;
S : String;
Res,Res1 : DBIResult;
CCC : array[0..255] of Char;
begin
YesEx:=0;
if Tbl.Exclusive then YesEx:=1;
YesAct:=0;
if Tbl.Active then YesAct:=1;
Tbl.Active:=FALSE;
Tbl.Exclusive:=TRUE;
Tbl.Active:=TRUE;
Res:=DbiRegenIndexes (Tbl.Handle);
Tbl.Active:=FALSE;
if YesEx<=0 then Tbl.Exclusive := FALSE;
if YesAct>0 then Tbl.Active:=TRUE;

if Res=0 then begin
Result:=TRUE;
end
else begin
if NrErr>0 then begin
Res1:=DbiGetErrorString (Res,CCC);
Str(Res,S);
S:="Ошибка реген.индекс.: "+S+" -> "+StrPAS(CCC)+" для : "+Tbl.TableName;
MessageBeep(mb_IconHand);
MessageDlg(S,mtError,[mbOk],0);
end;
end;
end;


 
VAleksey ©   (2002-06-06 08:37) [11]

короче, щас я немного не в себе сижу > ничего не читал > извините если повторяюсь.
Для *.db нет ничего проще, чем восстановить индексы. Удаляй в БД файлы *.px , и потом восстанавливай индексы тривиальным Table1.AddIndex.
PS
Описание индексов можно хранить во внешней таблице.


 
VAleksey ©   (2002-06-06 08:42) [12]

ааа, так ты не знаешь какие индексы рухнули ?
Ну тогда никак. DBD не поможет, но открыть таблицу ты сможешь (без индексов), если выполнишь 1-й пункт VAleksey © (06.06.02 08:37)


 
z_z   (2002-06-06 11:16) [13]

VAleksey

Знаю, нашел какие рухнули....Какие мои дальше действия??

Помогите!


 
VICTOR_   (2002-06-06 11:26) [14]

1.С кодировками помогает только резервная копия(по моему опыту)
2.Сначала попробуй найти файлы *.lck на локальных дисках и всех их удали. Возможно, это решит твою проблему.
3.Если имееш любую копию индексов *.px, *.xg? , *.yg?(незапорченную, желательно от пустой базы), то попробуй:
-скопируй файлы *.db, *.px
-подкинь к нему *.xg? , *.yg?(чистые)
- зайди в DATABASE DESKTOP
- открой таблицу File-Open-Table (если файл не открывается, то подкинь чистый *.px и попробуй повторить)
- зайди в меню Table-Restucture
- поставь галочку PackTable
- Save
- Если все успешно, то скопируй *.db, *.px, *.xg? , *.yg? в рабочую программу


 
z_z   (2002-06-06 11:48) [15]

VICTOR_

открыл...



> 3.Если имееш любую копию индексов *.px, *.xg? , *.yg?(незапорченную,
> желательно от пустой базы), то попробуй:


можно абсолютно с любой базы взять..??





 
VICTOR_   (2002-06-06 12:09) [16]

С любой, незапорченной береш индексы для своей таблицы(лучше всего с пустой)


 
z_z   (2002-06-06 12:16) [17]

VICTOR_

Это наверно самый глупый вопрос будет но где взять пустую таблицу??


 
VICTOR_   (2002-06-06 12:19) [18]

С любой копии твоей базы до того как она испортилась


 
VICTOR_   (2002-06-06 12:31) [19]

Таблицу брать не надо, береш только индексы


 
z_z   (2002-06-06 12:35) [20]

ясно.....

спасибо....
да еще когда сделаешь Save сообщение что все восстановилось будет??


 
VICTOR_   (2002-06-06 12:53) [21]

Сообщение не выдается, просто закрывается окно.
Далее
VICTOR_ (06.06.02 11:26)
>скопируй *.db, *.px, *.xg? , *.yg? в рабочую программу



Страницы: 1 вся ветка

Текущий архив: 2002.07.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.011 c
3-896
Termik
2002-06-07 12:08
2002.07.01
Как внести данные в таблицу внутри EXECUTE IMMEDIATE ?


14-1189
Independence
2002-05-31 11:18
2002.07.01
Подскажите, как перекомпиллировать библиотеку?


6-1118
Бабшанов Марат
2002-04-03 11:18
2002.07.01
Подскажите как создать счетчик посещения сайта на Дельфи


1-1045
BKV
2002-06-18 16:35
2002.07.01
Создание двух визуальных компонентов в дизайн-тайм.


3-917
Sergant
2002-06-07 18:10
2002.07.01
Вопрос по правам пользователей в Interbase/Firebird