|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
Доброго всем дня! Время от времени происходит такой неприятный момент, когда в таблице с уникальным полем появляется дублирующая запись (происхождение мне неизвестно). У этой таблице имеется ряд индексов. Которые после переиндексации либо пропадают. И только тогда обнаруживается что в таблице есть неуникальная запись. Хотелось бы придумать механизм восстановления базы. Например, мы знаем что в контейнере DBC можно узнать какие есть поля, индексы и представления. Также в контейнере есть поле Property, в котором на непонятном языке что-то написано, возможно то, что необходимо, но чаще я там вижу квадратики и как их распознать - не знаю. Так вот, как пути решения создания механизма пока что вижу 2: 1. Хранить отдельно копию файла dbc, и при порче используемого, подставлять сохраненный. Тогда ерунда может появиться если после модификации таблицы, вовремя не был скопирован этот dbc, чтобы он был идентичен. 2. Хранить отдельно копию файла dbc, и при порче используемого, вытаскивать список индексов и востанавливать их, НО! : 2.1. - не всегда ведь имя индекса совпадает с именем поля 2.2. - как узнать тип индекса (primary, regular ....) ? 2.3. - как узнать все остальные характеристики индекса (на какие поля распространяется, если их не одно, и с каким ASC или DESC)? 2.4. - возможно еще что-то... Если тема уже поднималась и не единожды, просьба - дайте ссылку. Если нет, пожалуйста, помогите решить данную проблемму. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 15:40 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
извиняюсь, что-то я слишком много написал не того что надо, отклонился от основной идее в первом варианте, надо восстановить индексы в определенной таблице, а не базу. спешка нужна при ловле блох... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 15:43 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
Вытащить можно так Код: plaintext 1. 2. 3. 4.
Только это борьба с последствиями, а не решение проблемы. По хорошему надо создавать/пересоздавать индексы в одном месте. Тогда набор индексов будет всегда одинаковый и описанной проблемы не возникнет. PS Контейнер БД трогать не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 15:59 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
Хотя уже давно с dbf не работаю , но насколько мой склероз мне не изменяет , вариант предложенный Dima T будет работать при "живых" таблицах и индексах. В таких случаях и REINDEX отработает. если же индекс или табличка "поломались" - то вытащить данные можно только из контейнера БД. В папке с фоксом есть папочка Tools в ней тоже папки - Filespec - там проект с описанием структуры фоксовых репортов , форм , БД если есть желание - можно самому написать программу , вытаскивающию нужную инфу - GenDBC - за вас уже написали программу , которая позволяет получить инфу по БД и сохранить ее в виде текстового файла. Можно посмотреть как вытаскиваеться описания и дописать таким образом , чтобы восстанавливало . Ну ясное дело для всего этого нужен рабочий контейнер БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 16:13 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
Dima TВытащить можно так Код: plaintext 1. 2. 3. 4.
Только это борьба с последствиями, а не решение проблемы. По хорошему надо создавать/пересоздавать индексы в одном месте. Тогда набор индексов будет всегда одинаковый и описанной проблемы не возникнет. PS Контейнер БД трогать не надо. Спасибо, теперь понятно как это все узнать (тип индекса, поле, asc/desc). Но будет ли эта инфа видна при поломанных или пропавших индексах? И как узнать значение Filter индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 16:29 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
авторИ как узнать значение Filter индекса Вы пытаетесь написать какую-то программу для восстановления индексов? самый простой вариант - хранить пустой cdx файл, в случае разрушения восстановить его вместо разрушенного и выполнить reindex, это освободит Вас от необходимости написания какого-то сложного кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 16:32 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
всем спасибо, буду что-то мудрить... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 16:37 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
Шось ничего хорошего у меня не вышло с подменой cdx... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2009, 17:19 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
что получилось плохого? в примере все хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2009, 17:58 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
прошелмимочто получилось плохого? в примере все хорошо. пасиба, так работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2009, 20:01 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
только остался еще такой вот вопрос - как сделать cdx-файлы пустыми, чтоб потом "убивать" испорченные их подставлять свежие? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2009, 09:06 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
авторкак сделать cdx-файлы пустыми, имеющуюся табличку нужной структуры с индексом, которая уже заполнена скопируйте в темповый каталог, запните, сохраните полученный пустой индексный файл как эталон ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2009, 09:10 |
|
Как вытащить всю инфу о фоксовской базе или полное восстановление таблиц?
|
|||
---|---|---|---|
#18+
прошелмимоавторкак сделать cdx-файлы пустыми, имеющуюся табличку нужной структуры с индексом, которая уже заполнена скопируйте в темповый каталог, запните, сохраните полученный пустой индексный файл как эталон ёлки, как все логично ))))) пасиб :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2009, 09:43 |
|
|
start [/forum/topic.php?fid=41&msg=36098960&tid=1586215]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 150ms |
0 / 0 |