Показать сообщение отдельно
  #1  
Старый 10.01.2014, 21:44
govorun govorun вне форума
Новичок
 
Регистрация: 30.10.2013
Сообщения: 60
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Волшебный цикл

Имеются 2 таблицы:
ADOTable1
ADOTable6

Нужно скопировать все строки из полей AAA, BBB, CCC таблицы ADOTable1 в таблицу ADOTable6.
Код:
procedure TForm16.Button2Click(Sender: TObject);
var
    i:integer;
begin
      Datamodule3.ADOTable1.First;
      Datamodule3.ADOTable6.Insert;
      for i:=0 to Datamodule3.ADOTable1.RecordCount-1 do
      begin
      Datamodule3.ADOTable6.FieldByName('AAA').AsString:=Datamodule3.ADOTable1.FieldByName('AAA').AsString;
      Datamodule3.ADOTable6.FieldByName('BBB').AsFloat:=Datamodule3.ADOTable1.FieldByName('BBB').AsFloat;
      Datamodule3.ADOTable6.FieldByName('CCC').AsDateTime:=Datamodule3.ADOTable1.FieldByName('CCC').AsDateTime;
      Datamodule3.ADOTable6.Next;
      end;
//    Datamodule3.ADOTable6.Post;
    end;
[/DELPHI]

Не заработало... Скопировало только первую строку. Внес изменения...

[DELPHI]procedure TForm16.Button2Click(Sender: TObject);
var
    i:integer;
begin
      Datamodule3.ADOTable1.First;
//      Datamodule3.ADOTable6.Insert;
      for i:=0 to Datamodule3.ADOTable1.RecordCount-1 do
      begin
      Datamodule3.ADOTable6.Insert;
      Datamodule3.ADOTable6.FieldByName('AAA').AsString:=Datamodule3.ADOTable1.FieldByName('AAA').AsString;
      Datamodule3.ADOTable6.FieldByName('BBB').AsFloat:=Datamodule3.ADOTable1.FieldByName('BBB').AsFloat;
      Datamodule3.ADOTable6.FieldByName('CCC').AsDateTime:=Datamodule3.ADOTable1.FieldByName('CCC').AsDateTime;
      Datamodule3.ADOTable6.Next;
      end;
//    Datamodule3.ADOTable6.Post;
    end;
[/DELPHI]

Не заработало... Скопировало только первую строку но три раза (в ADOTable1 всего 3 записи). Внес изменения...

[DELPHI]procedure TForm16.Button2Click(Sender: TObject);
var
    i:integer;
begin
      Datamodule3.ADOTable1.First;
//      Datamodule3.ADOTable6.Insert;
      for i:=0 to Datamodule3.ADOTable1.RecordCount-1 do
      begin
      Datamodule3.ADOTable6.Insert;
      Datamodule3.ADOTable6.FieldByName('AAA').AsString:=Datamodule3.ADOTable1.FieldByName('AAA').AsString;
      Datamodule3.ADOTable6.FieldByName('BBB').AsFloat:=Datamodule3.ADOTable1.FieldByName('BBB').AsFloat;
      Datamodule3.ADOTable6.FieldByName('CCC').AsDateTime:=Datamodule3.ADOTable1.FieldByName('CCC').AsDateTime;
      Datamodule3.ADOTable6.Next;
      end;
//    Datamodule3.ADOTable6.Post;
    end;
Админ: 3-х дневный бан за кривое форматирование.


Не заработало... Ругнулось что ADOTable6 не Insert

Вопрос, что не так?
Ответить с цитированием