Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Резервное копирование таблиц БД, BDE, Paradox 
:(
    Опции темы
UhaMurad
  Дата 3.3.2005, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 22.9.2004
Где: Махачкала

Репутация: нет
Всего: нет



Помогите, пожалуйста.

В моей программе предусмотрена возможность резервного копирования БД (допустим, все таблицы копируются в другую папку). Однако, API функция CopyFileEx копирует старые файлы, без внесённых программой изменений в них. Предварительно закрываю таблицу (Table::Close()), но это не помогает...

Может быть есть другие способы резервирования.

Спасибо!
PM MAIL WWW   Вверх
Dimich
Дата 3.3.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Думаю надо отконнектиться от базы, скопировать, а потом приконнектиться обратно
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
UhaMurad
Дата 3.3.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 22.9.2004
Где: Махачкала

Репутация: нет
Всего: нет



Цитата
отконнектиться от базы, скопировать, а потом приконнектиться обратно


Это как - Table.Close и Table.Open что ли?
PM MAIL WWW   Вверх
NiJazz
Дата 3.3.2005, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: нет
Всего: 23



UhaMurad
Используй TDatabase. У него есть метод Close. Так закроются все таблицы.
PM MAIL   Вверх
UhaMurad
Дата 4.3.2005, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 22.9.2004
Где: Махачкала

Репутация: нет
Всего: нет



Цитата
Используй TDatabase. У него есть метод Close. Так закроются все таблицы.


А ежели я использую в качестве имени БД прямой путь к ней ("D:\DB\Ar1"), то я не могу сослать таблицу на эту БД... smile
PM MAIL WWW   Вверх
ahito1
Дата 21.8.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 20.8.2007

Репутация: нет
Всего: -1



тоже интересует данный вопрос
PM MAIL   Вверх
Akella
Дата 22.8.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(UhaMurad @  3.3.2005,  17:42 Найти цитируемый пост)
Однако, API функция CopyFileEx копирует старые файлы, без внесённых программой изменений в них. Предварительно закрываю таблицу (Table::Close()), но это не помогает...

Может быть есть другие способы резервирования.

Данные хранятся в кеше винды для ускорения работы.
Сбрасывай данные из буфера принудительно
Советую почитать про метод FlushBuffers у компоненты TTable.
PM MAIL   Вверх
pseud
Дата 24.8.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Как ни странно, но и я нарвался на такую проблему.
Недавно в своей давно писанной проге с резервным копированием базы в архив обнаружил, что архивируется не актуальное состояние БД. И вроде Paradox - не транзакционная база, и вроде в Table (программа старая, сейчас я везде не рекомендую использование этого компонента) свойство CachedUpdates = False.


Akella, спасибо за совет про FlushBuffers. 
Справка:
Цитата

Call FlushBuffers to cause the dataset to post all pending changes to the database, including any cached updates. Use FlushBuffers instead of CheckBrowseMode if it is important that cached record buffers are posted.

Проверить сейчас возможности нет, но, как я уже сказал, у меня CachedUpdates = False.
Справка:
Цитата

CachedUpdates enables or disables the use of cached updates for a dataset.


1. Надо бы проверить совет Akella.
2. TTable - это зло. В новых проектах использую сугубо Query. Изменения данных произведенные этим компонентом (SQL(DML)) точно сразу отразятся и в самом файле БД.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 24.8.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



За то TTable значительно быстрее Query. Наверное за счёт того, что данные хранятся в кеше винды. Я с BDE всегда использовал только TTable. И не жалею.

Добавлено через 2 минуты и 23 секунды
Но у TQuery тоже данные могут храниться в кеше. Я не знаю точно на счёт этого.
Я всегда делал так:
Код

TTable1.Edit;
...
...
..
TTable1.Post;
TTable1.FlushBuffers;


Добавлено через 2 минуты и 56 секунд
Скорее тут дело не в компонентах, а в самой винде.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.