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


Автор: uranpro 5.9.2008, 11:44
Выполняется запрос на ADOQuery, нужно полученные данные перевести в BDE Paradox и сохранить на диске, как это сделать ?

Код

ADOQuery1.sql.text:='select * from mytable';
adoquery1.open;
table1. ... // что дальше ?))


заранее спасибо!!

Автор: Frees 5.9.2008, 11:48
Код

ADOQuery1.sql.text:='select * from mytable';
adoquery1.open;
adoquery1.first;
while not adoquery1.eof do
begin
  table1.append;
  table1.fieldbyname('имя поля').value := 
     adoquery1.fieldbyname('имя поля').value;
  // и все поля так же, можно в цикле по полям пройтись
  table1.Post; 
  adoquery1.next;
end;

Автор: uranpro 5.9.2008, 11:49
Frees, большое спасибо !!!)

Автор: Deniz 5.9.2008, 11:49
Примерно так:
Код
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
  Table1.Append;
  Table1.Fieldbyname(...).as...:=Query1.Fieldbyname(...).as...
  ...
  Table1.Post;
  Query1.Next;
end;

Автор: uranpro 5.9.2008, 11:54
Frees, а так можно ?
Код

for i:=0 to ADOQuery1.FieldCount-1 do
 Table1.Fields.Add(ADOQuery1.IndexFields[i]);


мне немного не понятно, а где табла сохраниться ? и если я сделаю так, как написал, все данные столбцов перенесутся в table1 ?

Добавлено через 1 минуту и 45 секунд
Deniz, а куда table1 сохраниться ? если она вобще пустая, разве можно будет обращаться по имени столбцов ?

Автор: Frees 5.9.2008, 11:58
Цитата(uranpro @  5.9.2008,  11:54 Найти цитируемый пост)
мне немного не понятно, а где табла сохраниться ? и если я сделаю так, как написал, все данные столбцов перенесутся в table1

table1 уже должна быть подцепленна к зарание созданной таблице причем поля и типы должны совпадать тогда только можно будет бежать по полям циклом

Автор: uranpro 5.9.2008, 12:04
Frees, вот. с этим проблема( как программно создать таблицу Paradox на диске и подцепить ее?

Автор: Frees 5.9.2008, 12:07
Код

sql := 'CREATE TABLE "employee.db" ( '+
      'Last_Name CHAR(20),'+
     'First_Name CHAR(15),'+ 
      'Salary NUMERIC(10,2),'+
      'Dept_No SMALLINT,'+ 
      'PRIMARY KEY (Last_Name, First_Name))';
Query1.sql.text:=sql;
Query1.ExecSQL;

©DRKB

Автор: uranpro 5.9.2008, 12:09
Frees, ))) ой) точно

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