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

Вниз

Не могу создать резервную копию базы. (BDE)   Найти похожие ветки 

 
Jen N   (2002-11-25 17:51) [0]

{Имею " шаблонную" базу (_shablon.dbf)
(Она проиндексирована, все это в Object Inspector отражено.}

Table_rezerv.TableName := "_shablon.dbf";
Open;
Close;

{Делаю так, чтобы вручную не указывать все Fields, Index для новой базы}
{Теперь присваиваю TableName новое значение (имя резервной базы), и создаю с такими же полями и индексом, но с новым именем}

Table_rezerv.TableName := newName;
Table_rezerv.CreateTable; {безусловно}
Table_rezerv.BatchMove(Table1, batCopy);

{вот тут выскакивает ошибка. Дело в том, что если просто Editы и Appendы делаю - нормально. А после BatchMove - матерится, говорит Index does not exist. И действительно физически файла с расширением mdx не появляется (это же и есть индекс?}

В каком месте я дурак?

Спасибо.


 
Jen N   (2002-11-25 18:06) [1]

Еще к тому же и наврал.
Append не ругается, но и ничего не делает. А вот Post после него ругается. Говорит "Table not in Insert or Edit Mode".


 
Pat   (2002-11-25 23:22) [2]

>Не могу создать резервную копию базы
Влом разбераться, что у тебя за проблема. Вот, только вчера написал процедуру резервирования таблицы:

procedure BackUpTable(Source:TTable);
const SqlString="insert into %s select * from %s";
begin
with TTable.Create(application) do
try
Source.IndexDefs.Update;
IndexDefs.Assign(Source.IndexDefs);
FieldDefs.Assign(Source.FieldDefs);
DatabaseName:=Source.DatabaseName;
TableName:="bk"+Source.TableName;
CreateTable;
finally
free
end;

with TQuery.Create(application) do
try
SQL.Clear;
DatabaseName:=Source.DatabaseName;
SQL.Add(format(SqlString,["bk"+Source.TableName,Source.TableName]));
ExecSQL;
finally
free
end;
end;

Авось, поможет :-))


 
Pat   (2002-11-25 23:31) [3]

>...говорит Index does not exist
Все дело в волшебных пузырьках ©
У тебя индексы не существуют
IndexDefs.Assign(Source.IndexDefs)



 
Jen N   (2002-11-26 15:22) [4]

2 Pat:
Спасибо, большое, разберусь!


 
Jen N   (2002-11-26 20:00) [5]

2 Pat, 2 All:

Спасибо, Pat, за процедуру.
Только у меня уже начали опускаться руки. Дело в том, что индекс у меня Expression - вычисляется по некоторой формуле из нескольких полей.
Видимо поэтому не хочет выполняться команда CreateTable. Говорит "Invalid index Descriptor. Table (с новым именем) does not exist".

Я долго-долго мучался сидел. И вставил такой кусок:

IndexName := Source.IndexName;
IndexDefs[0].Expression := Source.IndexDefs[0].Expression;
IndexDefs[0].Name := Source.IndexDefs[0].Name;
IndexDefs[0].Source := Source.IndexDefs[0].Source;

Теперь таблица создается (CreateTable).
Но зато ни BatchMove, ни твой, Pat, sql-ловский копировальщик не работают. BatchMove матерится опять же на индексы (???), а sql-ке не нравится русское имя файла (база имеет имя "01 ноября 2002.dbf", например). Я конечно, могу исправить енто имя на англицкое, но не уверен, что и это поможет.
Наверное, стоит опустить руки и работать без бекапа :((

А кто подскажет, может просто тупо 3 файла БД копировать командами ОС, у меня работает на базе только один человек, и во время работы можно копировать эти файлы, я пробовал.

Отчаявшийся, Jen N


 
Anatoly Podgoretsky   (2002-11-26 23:02) [6]

dbiCopyTAble


 
Jen N   (2002-11-27 14:35) [7]

2 Anatoly Podgoretsky:

dbiCopyTable - это ibase? Я в хелпе Делфи не нашел (даже поиском).



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
14-51890
Blarior
2002-11-22 22:32
2002.12.16
Где?


1-51698
Berser
2002-12-05 00:54
2002.12.16
AsyncPro 4


4-52035
cardinal
2002-10-31 02:36
2002.12.16
Как узнать адреса процессов в w98?


3-51590
Jen N
2002-11-25 17:51
2002.12.16
Не могу создать резервную копию базы. (BDE)


4-51992
Nick N A
2002-10-27 06:58
2002.12.16
Enum & CallBack





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