Количество показов: 1632
Опубликован: 2007-01-12 06:38:11
Автор:  Александр Бондарь

Предыдущая часть

Последние методы, которые мы рассмотрим в данной статье, — BatchRecordToQuery и BatchAllRecordsToQuery компонента TpFIBDataSet. Они похожи на метод BatchToQuery. Метод BatchRecordToQuery позволяет передать указанному запросу текущую запись для помещения в таблицу, BatchAllRecordsToQuery выполняет метод BatchRecordToQuery для всех записей набора данных.

Пример использования BatchAllRecordsToQuery.

В предыдущем проекте BatchQuery5 напишем простой обработчик события щелчка по кнопке DSBatchAllToQuery.

Delphi

procedure TFormBatch.BDSBatchAllToQueryClick(Sender: TObject);
begin
pFIBDataSet1.BatchAllRecordsToQuery(QueryToAnotherBase);
pFIBTransaction2.CommitRetaining;
pFIBDataSet2.FullRefresh;
end;

C++

void __fastcall TFormBatch::BDSBatchAllToQueryClick(TObject *Sender)
{
pFIBDataSet1->BatchAllRecordsToQuery(QueryToAnotherBase);
pFIBTransaction2->CommitRetaining();
pFIBDataSet2->FullRefresh();
}

Заключение

Мы рассмотрели простые варианты использования данных методов.

В заключение следует сделать два замечания.

1. Рассмотренные методы экспорта/импорта (BatchOutput, BatchInputTpFIBQuery и TpFIBDataSet, — BatchOutputRawFile, BatchInputRawFile) не позволяют работать с полями Blob и массивами. Для таких целей больше подойдет формат XML. Ему мы посвятим одну из следующих статей.

2. Мы рассмотрели использование методов BatchToQuery, BatchRecordToQuery и BatchAllRecordsToQuery для копирования данных из одной базы данных в другую. На самом деле вариантов использования этих методов гораздо больше. Запрос в этих методах может содержать не только оператор INSERT, но и другие. Если в запрос поместить оператор SQL DELETE, то можно удалить из любой таблицы строки, значения полей в которых совпадают со значениями некоторых полей текущего набора данных (запроса). Если запрос будет содержать оператор UPDATE, то можно выполнять репликацию — проводить актуализацию данных одной базы данных на основании измененных данных другой базы.

Специальные цены для ex-USSR (кроме стран ЕС):

235 Euro
1500 руб. для физ. лиц
3600 руб. для юр. лиц

Скидки при покупке нескольких копий!

В настоящее время FIBPlus используется мной в системе управления турнирами по спортивным бальным танцам. Дело серьёзное, официально аттестуемое. Программа работает в нескольких регионах РФ, и даже немного за рубежом. Учитывая, что такие турниры иногда собирают до 1000 танцевальных пар, и все результаты заносятся, обрабатываюся и выводятся в реальном времени на печать, в пресс-центр, судьям, на информационное табло, и т.д. очень важна устойчивость и стабильность.

Построив систему на Firebird/FIBPlus, я не прогадал. Более всего пользуюсь разделенными транзакциями, Conditions, FB Events, AutoUpdate SQL для AutoInc полей. Ну и конечно SQL Editor, куда ж без него... Много, много радости детишкам принесло... :)Удивляюсь каждый раз сообщениям об исправленных багах. Мне с ними за последние 5 лет так и не пришлось встретиться :-) Так держать.

>>

Владимир Крапоткин, г.Екатеринбург
Раздел для покупателей
Получение полных версий и обновлений. Перейти в Customer's Center

Сайт по Delphi: ежедневные ИТ-новости, статьи, документация, компоненты, конкурсы, юмор...