Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Перенос части БД


Автор: Burka 6.8.2007, 14:11
Подскажите, как правильней реализовать?
Есть да ПК на них установлена моя программа. Использую Access'скую БД.
Требуется с одного ПК сохранить часть базы(одну или несколько строк) в файл, а потом на другом ПК читать этот файл и записать в БД эти данные.

Автор: Anark1 6.8.2007, 17:17
А что непонятного? 
Тут кстати хорошо использовать XML.

Автор: Burka 6.8.2007, 19:44
А стандартных компонентов нет для использования xml?
А что если сделать с обчыным файлом через потоки, например)?

Автор: Anark1 6.8.2007, 20:18
Тут единственный вопрос.
Базы с которыми работает твоя программа идентичны?
Просто нужно занести данные в файл и указать расположение в БД.

Автор: Burka 6.8.2007, 20:26
Да, структура одна и та же. просто нужно сохранить в файл несколько или одну строку. И читать из этого файла данные обратно в базу.

Автор: SergeBS 7.8.2007, 08:13
Burka,
SaveToFile method (TCustomADODataSet)
LoadFromFile method (TCustomADODataSet)
XML есть. 

Автор: Burka 7.8.2007, 15:43
SergeBS, Спасибо, метод отлично работает.
Но есть проблемка, подскажите как решить.
Мне нужно изменять значения ключевого поля в читаемой записи до того как оно попадет в таблицу. Есть способ это сделать без лишнего датасета?
И еще вопрос - как с пмощью этих процедур записать несколько строк таблиц в один файл?

Автор: SergeBS 9.8.2007, 12:32
Burka, 
Цитата
И еще вопрос - как с пмощью этих процедур записать несколько строк таблиц в один файл?

Прочитать Help внимательно. 
Цитата

FileName is a string containing the name of the destination file. This file remains open from the first call to SaveToFile until the dataset is closed.


Пример - 5 записей начиная с текущей:
Код

procedure TfMain.btnSaveClick(Sender: TObject);
var
  i : integer;
begin
  for i := 1 to 5 do
  begin
    dsHouse.SaveToFile('Test.xml',pfXML);
    dsHouse.Next;
  end;
  dsHouse.Close;
  dsHouse.Open;
end;

Последние 2 строки - для закрытия файла.

Автор: Burka 9.8.2007, 13:33
SergeBS, спасибо. 
тока вот как хранить количество записей и как ее изменить при чтении?)
Я решил записывать в поток по-своему. Файл весит в 20 раз меньше и я могу делать все что мне нужно, хоть и подольше попарится надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)