Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.012 c
15-1217607719
Кое кто
2008-08-01 20:21
2008.09.21
Шахматы Фишера


15-1217577898
Ega23
2008-08-01 12:04
2008.09.21
переменные окружения и CGI в Delphi


2-1218178979
3dAnatomy
2008-08-08 11:02
2008.09.21
Гиперссылка в тексте TMemo?


15-1217595794
savyhinst
2008-08-01 17:03
2008.09.21
paszlib


3-1205663074
Kolan
2008-03-16 13:24
2008.09.21
Как проапдейтить строку, а если её нет, то вставить?