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

Вниз

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

Наверх




Память: 0.46 MB
Время: 0.007 c
3-72993
YuriE
2002-04-24 18:22
2002.05.23
Обновление данных в DBGridе


1-73235
Дмитрий К.
2002-05-14 13:33
2002.05.23
Добавление записи в реестр


1-73151
chsv
2002-05-07 21:34
2002.05.23
работа с полиморфными потоками в делфи


14-73405
Timon
2002-04-10 15:53
2002.05.23
Защита продукта


1-73312
Tosha_a
2002-05-11 19:43
2002.05.23
как вызвать процедуру одного класса в функции другого?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский