![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение результа запроса [D6]
Шурик Ш © (2003-02-19 18:59:00)Порою бывает необходимо сохранить результат, полученный запросом, в таблицу (например, DBF). А нельзя ли это сделать без утомительного застирывания? Т.е. без предварительного создания таблицы "вручную" (прописывания типов и размерности полей, их названий и т.д.)
iHollywood (2003-02-20 21:11:00) [1]Все это хорошо для приложений использующих BDE. С ADO дела обстоят намного хуже. Невозможно создать таблицу без SQL запроса CREATE TABLE
Карелин Артем (2003-02-20 14:23:00) [2]Народ, вы о чем??
Так можно перебрасывать таблицы куда угодно, лишь бы это набором данных было:
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
IBTable1.Active:=false;
//Набор данных должен быть закрыт
IBTransaction1.Active:=true;
if IBTable1.Exists then IBTable1.DeleteTable;
IBTable1.FieldDefs.Assign(Dbf1.FieldDefs);
//Если надо копировать индексы, делаем то же самое с IndexDefs.
//Перед созданием таблицы имя и база данных должны быть назначены.
IBTable1.CreateTable;
IBTransaction1.Commit;
IBTable1.Open;
//Копируем данные
ProgressBar1.Max:=Dbf1.ExactRecordCount;
Dbf1.First;
while not(Dbf1.Eof) do
begin
IBTable1.Append;
for i:=0 to Dbf1.Fields.Count-1 do
begin
IBTable1.Fields[i].Value:=Dbf1.Fields[i].Value;
end;
ProgressBar1.Position:=Dbf1.PhysicalRecNo;
Application.ProcessMessages;
IBTable1.Post;
Dbf1.Next;
end;
IBTable1.Close;
IBTransaction1.Active:=false;
ProgressBar1.Position:=0;
end;
Anatoly Podgoretsky (2003-02-19 21:24:00) [3]dbiMakePermanent
MsGuns (2003-02-19 21:01:00) [4]TBatchMove
Шурик Ш (2003-02-19 19:45:00) [5]Запрос через BDE к SQL 7.0, сохранение запроса в ДБФ.
Anatoly Podgoretsky (2003-02-19 19:24:00) [6]Давай конкретности
Val (2003-02-19 19:14:00) [7]можно, но не для всех субд, точно не для дбф.