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

Вниз

Восстановление БД по индексам?   Найти похожие ветки 

 
Сергей М. ©   (2009-03-10 13:59) [40]


> если, например, full text индекс был построен?


Если бы да кабы)

Ну если full text и не по функциональному выражению, то такое поле восстановить в оригинале, конечно, можно


> И, например, целочисленные данные можно со 100% точностью
> восстановить, верно?


Верно, но опять же если индек был построен по оригинальному значению, а не по функц.выражению, оперирующему в кач-ве аргумента ориг.значением


 
Сергей М. ©   (2009-03-10 14:02) [41]


> KSergey


Может человек долговую амбарную книгу восстанавливать взялся и ему за это процент с каждой восстановленной записи обещяли ?)


 
бедолага   (2009-03-10 14:03) [42]

короче наткнулся на вот эту технологию: http://club.shelek.ru/viewart.php?id=132  надеюсь чего нибудь получится...


 
AndreyV ©   (2009-03-10 14:16) [43]

> [39] AndreyV ©   (10.03.09 13:54)
> В 1С, насколько знаю, все поля символьные, и ИД типа "  
> adg123hjk  ", не суть важно.

Из файла 1Cv7.DD

#===============================================================================
#==TABLE no 26     : Справочник Договоры
# Name    |Descr                         |Type[A/S/U]|DBTableName|ReUsable  
T=SC204   |Справочник Договоры           |A          |SC204      |1        
#-----Fields-------
# Name      |Descr               |Type|Length|Precision
F=ID        |ID object           |C   |9     |0        
F=PARENTID  |ID parent obj       |C   |9     |0        
F=CODE      |object code         |C   |8     |0        
F=DESCR     |object description  |C   |50    |0        
F=PARENTEXT |Parent in other tabl|C   |9     |0        
F=ISFOLDER  |Flag - Is Line - Fol|N   |1     |0        
F=ISMARK    |Flag Object is Marke|C   |1     |0        
F=VERSTAMP  |Version stamp       |C   |6     |0        
F=SP668     |(P)ВалютаВзаиморасче|C   |9     |0        
F=SP1948    |(P)ТипЦен           |C   |9     |0        
F=SP1920    |(P)Скидка           |C   |9     |0        
F=SP870     |(P)ГлубинаКредита   |N   |5     |0        
F=SP2285    |(P)СуммаКредита     |N   |16    |2        
F=SP4764    |(P)НеКонтролироватьК|N   |2     |0        
#----Indexes------
# Name     |Descr         |Unique|Indexed fields                                              |DBName    
I=IDD      |of ID         |0     |ID                                                          |IDD        
I=PCODE    |of PARENT and |0     |PARENTEXT,PARENTID,ISFOLDER,CODE(UPPER)                     |PCODE      
I=PDESCR   |of PARENT and |0     |PARENTEXT,PARENTID,ISFOLDER,DESCR(UPPER)                    |PDESCR    
I=CODE     |of CODE       |0     |CODE(UPPER)                                                 |CODE      
I=DESCR    |of DESCR      |0     |DESCR(UPPER)                                                |DESCR      
#

Из Фокса для PCODE
PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE)
ещё и FOR
.NOT.DELETED()


 
Anatoly Podgoretsky ©   (2009-03-10 14:21) [44]

> It"s me  (10.03.2009 13:46:36)  [36]

Да ну, например I*Rnd


 
Anatoly Podgoretsky ©   (2009-03-10 14:22) [45]

> KSergey  (10.03.2009 13:52:38)  [38]

И так за семь лет, по многомиллионной таблице.
Но ведь все равно придется :-(.


 
Anatoly Podgoretsky ©   (2009-03-10 14:23) [46]

> Сергей М.  (10.03.2009 14:02:41)  [41]

Или не вырывать волосенки по одной.


 
AndreyV ©   (2009-03-10 14:28) [47]

> [45] Anatoly Podgoretsky ©   (10.03.09 14:22)
> > KSergey  (10.03.2009 13:52:38)  [38]
>
> И так за семь лет, по многомиллионной таблице.
> Но ведь все равно придется :-(.

Судя по структуре - придётся всё восстанавливать вручную, ну может целостность удастся выудить из связных таблиц и индексов.


 
Сергей М. ©   (2009-03-10 14:30) [48]


> не вырывать волосенки по одной


Одним словом - мартышка и очко


 
бедолага   (2009-03-10 14:31) [49]


> KSergey

Ну к этому, видимо, и приду.
Насколько понял ID полей уникальны, ссылки на эти поля остались нетронутыми, стало быть можно наполнить таблицу договоров заново, подставляя вместо вновь созданного ID тот, на который указывает ссылка, тогда все должно заработать.

Теоретически можно написать обработку, которая и произведет заполнение таблицы новыми записями.

Может кто-то имеет возможность готовую обработку, для подобной ситуации скинуть?


 
AndreyV ©   (2009-03-10 14:38) [50]

> [49] бедолага   (10.03.09 14:31)
> Может кто-то имеет возможность готовую обработку, для подобной
> ситуации скинуть?

INSERT INTO ДОГОВОРЫ (ID) SELECT ID FROM КОНТРАГЕНТЫ GROUP BY ID


 
AndreyV ©   (2009-03-10 14:45) [51]

> [50] AndreyV ©   (10.03.09 14:38)
> INSERT INTO ДОГОВОРЫ (ID) SELECT ID FROM КОНТРАГЕНТЫ GROUP
> BY ID

Не "Контрагенты", а "заказы" какие-нибудь и прочее

INSERT INTO ДОГОВОРЫ
 (ID_контрагент, ID_договор)
SELECT ID_контрагент, ID_договор
FROM заказы
GROUP BY ID_контрагент, ID_договор


 
Desdechado ©   (2009-03-10 15:33) [52]

Вот я не помню точно, но есть подозрения, что записи, помеченные на удаление в DBF, также индексируются, но при этом в индексном файле нет отметок об удаленности.


 
AndreyV ©   (2009-03-10 16:03) [53]

> [52] Desdechado ©   (10.03.09 15:33)
> Вот я не помню точно, но есть подозрения, что записи, помеченные
> на удаление в DBF, также индексируются, но при этом в индексном
> файле нет отметок об удаленности.

Ну да. В условии индекса ставят выражение
for !deleted()
для удобства и скорости.


 
blackman ©   (2009-03-10 20:53) [54]

Может быть поможет

Формат DBF. Формат индексов CDX IDX. Структура файла memo в системе FoxBASE+ (типа .DBT). Unit обработки данных на языке Pascal
http://articles.org.ru/docum/dbfbase.php

Однако я бы не взялся за это :)



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

Форум: "Прочее";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.007 c
11-1200515589
Vinum
2008-01-16 23:33
2009.05.17
как скопировать текст в буфер


10-1156692481
AlexeyT
2006-08-27 19:28
2009.05.17
Вопрос по Windows Media Player 9


15-1236852850
b@v
2009-03-12 13:14
2009.05.17
ACCESS to MySQL


15-1237382359
немо2
2009-03-18 16:19
2009.05.17
select min(col1) from tabl1. Работает по 5 минут. MSSQL2000


3-1220820557
kaif
2008-09-08 00:49
2009.05.17
Автоинкрементные поля в MS SQL





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