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

Вниз

Paradox   Найти похожие ветки 

 
Олег219   (2002-04-23 23:08) [0]

Минуточку внимания...
Табличка парадоксовская, маленькая, чуть более 1000 записей, работало все долго, потом что-то кряк.. Теперь она великолепно смотрится DBD, или просто в гриде, но при попытке наложить фильтр, или применить locate, вся прога виснет намертво. Сношу индекс первичный (других нет, но он сложный), пытаюсь в DBD создать новый, после некоторого раздумия заявляется, что некий стек (и что за стек?) переполнен и неплохо бы сходить к врачу (в смысле - abort:-)
Кто подскажет, как лечить, или, хотя бы, в чем проблема здесь? В какой области искать, как защититься на будущее?
Заранее благодарен.


 
Lusha ©   (2002-04-24 09:21) [1]

Для начала попробуйте пролистать ее в DBD до самого конца... Необходимо убедиться, что данные действительно целы...


 
IPisk ©   (2002-04-24 10:53) [2]

Попробовать скопировать данные в новую таблицу,
т.е. как бы пересоздать старую.


 
sniknik ©   (2002-04-24 11:55) [3]

как один из вариантов попробовать упаковку (если с таблицей долго работали то живых записей может быть гораздо меньше чем удаленных, тем более что она крякнулась и могут быть "убитые данные")

procedure TDatMod.PackTable(Table: TTable);
var
Props: CURProps;
hDb: hDBIDb;
TableDesc: CRTblDesc;
begin
if not Table.Active then raise EDatabaseError.Create("Table must be opened to pack");
if not Table.Exclusive then raise EDatabaseError.Create("Table must be opened exclusively to pack");
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szPARADOX) then begin
FillChar(TableDesc, sizeof(TableDesc), 0);
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
StrPCopy(TableDesc.szTblName, Table.TableName);
StrPCopy(TableDesc.szTblType, Props.szTableType);
TableDesc.bPack := True;
Table.Close;
Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False));
end else
if (Props.szTableType = szDBASE) then Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True))
else raise EDatabaseError.Create("Table must be either of Paradox or dBASE type to pack");
Table.Open;
end;


 
VAleksey ©   (2002-04-24 14:35) [4]


> sniknik © (24.04.02 11:55)
:)))
Ты вы каждом ответе теперь подобные примеры намерен приводить ?


 
sniknik ©   (2002-04-24 15:21) [5]

что поделаеш у людей похоже поиск не работает. :-(
если надоело могу перестать.


 
Олег121   (2002-04-25 00:23) [6]

Листать пробовал, копировать (с помощью DBD) пробовал, эту большую штуковину попробую, если предварительно пойму.
Но вот что за стек переполнен? И вообще, не создаются новый праймари индекс - это как, почему? Насколько я разумею, при логической ошибке она просто выдаст проблемы в отдельной табличке (она - в смысле DBD).


 
Lusha ©   (2002-04-25 09:16) [7]

Но вот что за стек переполнен?
Представьте себе картинку: два блока с данными внутри таблички имеют ссылки друг на друга... Как Вы думаете, что произойдет если где то в коде программы используется рекурсия при перемещении по данным?

Листать пробовал
То есть долистал от начала до конца?

И вообще, не создаются новый праймари индекс - это как, почему?
А что DBD по этому поводу ничего не говорит? Просто не создает?


В "кладовке" посмотрите программы восстановления Paradox структур...


 
Erlend ©   (2002-04-25 09:39) [8]

Удали с диска все файлы table.*, а оставь table.db. Потом
открой в DBD. Он выругается и перестроит таблицу.


 
Олег219   (2002-04-25 23:36) [9]

Ребяты, я не совсем уж... Все это и пробовал, DBD и ругается на стек. Мне пофигу, я табличку очищу (на горе юзерам:)), просто любопытно, что же такого интересного могло произойти.


 
sniknik ©   (2002-04-25 23:53) [10]

ну зашли и мне посмотреть.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
3-73034
vne
2002-04-26 13:03
2002.05.23
Как найти последнюю запись в выборке Detail таблицы


1-73116
sergeii
2002-05-13 12:05
2002.05.23
Естъ ли какая функцыя в Delphi ?


3-73086
Tanya
2002-04-29 09:41
2002.05.23
Reports


1-73296
Vcoder
2002-05-11 19:25
2002.05.23
Как отловить команду выключения компьютера?


1-73196
sir_musatov
2002-05-14 13:32
2002.05.23
поделитесь RxLib