Текущий архив: 2008.09.21;
Скачать: CL | DM;
Вниз
MDX в DBF. Найти похожие ветки
← →
Drowsy (2008-03-25 02:32) [0]Была индексированная таблица Table.dbf с индексным
файлом Table.MDX. Можно ли, если этот файл (MDX) , безнадёжно испорчен, или вообще потерян, средствами BDE восстановить работу с Table.dbf. ( Что ни пытаюсь делать, всё вываливается ошибка (" Index does not exists. File : Table.MDX")).
← →
Виталий Панасенко(дом) (2008-03-25 08:45) [1]Попытайся открыть DBD, он должен предложить сделать Deattach индекса(один из вариантов)
← →
Drowsy (2008-03-25 12:22) [2]Спасибо, так можно.
Но нужно это сделать программно.
← →
Anatoly Podgoretsky © (2008-03-25 14:25) [3]Если у тебя нет описания индексов, то сделать уже ничего нельзя, ну разве что попробовать хакерскими методами покопаться в файле (если он еще есть), может там еще сохранились отстатки заголовков индексов.
Если же описания есть, то можешь отсоединить индекс и поновому создать
> Но нужно это сделать программно.
Что мешает, работай с БДЕ, а не с VCL - dbiRegisterCallback
← →
Anatoly Podgoretsky © (2008-03-25 14:30) [4]Если у тебя нет описания индексов, то сделать уже ничего нельзя, ну разве что попробовать хакерскими методами покопаться в файле (если он еще есть), может там еще сохранились отстатки заголовков индексов.
Если же описания есть, то можешь отсоединить индекс и поновому создать
> Но нужно это сделать программно.
Что мешает, работай с БДЕ, а не с VCL - dbiRegisterCallback
← →
Drowsy (2008-03-25 14:34) [5]Anatoly Podgoretsky, спасибо.
Описание есть внутри программы.
Если dbiRegisterCallback позволяет отсоединить индекс - то это то, что надо!
Буду посмотреть про эту функцию....
← →
Drowsy (2008-03-25 15:20) [6]Да-а-а, с этим без полбанки не разобраться... :)
← →
Drowsy (2008-03-25 15:40) [7]О, ни фига не понял как, но с помощью примера в хелпах получилось!!!
Где-бы почитать по азбучному , про механизм dbiRegisterCallback?!
← →
Anatoly Podgoretsky © (2008-03-25 22:19) [8]
> Да-а-а, с этим без полбанки не разобраться... :)
Какие еще полбанки, есть справка и прекрасные примеры. Вряд ли ты где то еще найдешь информацию. Примеры аж на двух языках.
← →
Anatoly Podgoretsky © (2008-03-25 22:21) [9]Вот выписка из примера
Example 1: Create a callback that handles the condition of a missing .MDX file for a dBASE file or a missing .CDX file for a FoxPro file:
Разве ты не это хочешь?
← →
Drowsy (2008-03-25 22:26) [10]Да, я именно этого и хотел и тупо запихал этот Example в прогу.
Всё получилось как надо, спасибо огромное!!!
Теперь осталось понять, как это работает. :)
← →
Anatoly Podgoretsky © (2008-03-26 00:02) [11]> Drowsy (25.03.2008 22:26:10) [10]
Очень просто, если происходит какая либо ошибка и не только, то через callback тебе выдают управления для принятия решения. DBD именно так и работает, но программно возможности больше. Ты внимательно прочитай там справку. Только в каком то примере есть мелкая ошибка, в каком уже не помню.
← →
Drowsy (2008-03-26 02:22) [12]Да, в дельфийском примере есть несовместимость параметров:
Check(DbiRegisterCallBack(
nil, //Cursor (Optional)
cbINPUTREQ, //Type of Callback
LongInt(0), //Pass-through client data
sizeof(CBInputDesc), //Callback buffer len
cbinfo, // ????????????? Pointer to callback function
@myfunc //????????????? Call back fn being registered
));
А так нормально:
Check(DbiRegisterCallBack(
nil, //Cursor (Optional)
cbINPUTREQ, //Type of Callback
LongInt(0), //Pass-through client data
sizeof(CBInputDesc), //Callback buffer len
@cbinfo, // !!!!!!!!!!!!!! Pointer to callback function
pfDBICallBack(@myfunc) //!!!!!!!!!!!!!!!! Call back fn being registered
Страницы: 1 вся ветка
Текущий архив: 2008.09.21;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.01 c