Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
1-1005
pavelB
2002-06-20 14:55
2002.07.01
пакеты


8-1112
DDDeN
2002-02-23 07:23
2002.07.01
Микширование


3-916
Abu
2002-06-05 16:12
2002.07.01
Ошибка если в look-up-поле


14-1183
Yuraz
2002-05-29 09:14
2002.07.01
Кто пользуется почтой hotmail.com


14-1152
Дремучий
2002-05-29 11:48
2002.07.01
Задачка! для 6 класса...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский