Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 21:44   #1
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию Волшебный цикл

Имеются 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;
Не заработало... Скопировало только первую строку. Внес изменения...

Код:
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;
Не заработало... Скопировало только первую строку но три раза (в ADOTable1 всего 3 записи). Внес изменения...

Код:
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;
Не заработало... Ругнулось что ADOTable6 не Insert

Вопрос, что не так?

Последний раз редактировалось Stilet; 10.01.2014 в 22:25.
govorun1 вне форума Ответить с цитированием
Старый 10.01.2014, 21:52   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а все не так, а какую книгу уже прочитали? синию или зеленую?
eval вне форума Ответить с цитированием
Старый 10.01.2014, 22:25   #3
0parol0lorap0
Пользователь
 
Регистрация: 05.10.2013
Сообщений: 13
По умолчанию

Можешь выложить исходник ?
0parol0lorap0 вне форума Ответить с цитированием
Старый 10.01.2014, 22:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm16.Button2Click(Sender: TObject);
var
    i:integer;
begin
      Datamodule3.ADOTable1.First;
//      Datamodule3.ADOTable6.Insert;
      while not Datamodule3.ADOTable1.eof 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.ADOTable1.Next;
      end;
//    Datamodule3.ADOTable6.Post;
    end;
Увидел ошибку, где я исправление отметил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2014, 22:29   #5
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а все не так, а какую книгу уже прочитали? синию или зеленую?
Библию Фленова
govorun1 вне форума Ответить с цитированием
Старый 10.01.2014, 22:30   #6
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от 0parol0lorap0 Посмотреть сообщение
Можешь выложить исходник ?
Похоже уже нет необходимости, но все равно спасибо.
govorun1 вне форума Ответить с цитированием
Старый 10.01.2014, 22:34   #7
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
procedure TForm16.Button2Click(Sender: TObject);
var
    i:integer;
begin
      Datamodule3.ADOTable1.First;
//      Datamodule3.ADOTable6.Insert;
      while not Datamodule3.ADOTable1.eof 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.ADOTable1.Next;
      end;
//    Datamodule3.ADOTable6.Post;
    end;
Увидел ошибку, где я исправление отметил?
Увидел... Спасибо... Кстати, в Библии Фленова рекоменуется именно FOR а не While. Попробую, отпишусь...
Нужно еще в цикл три условия поставить... Сначало попробую сам...
govorun1 вне форума Ответить с цитированием
Старый 10.01.2014, 22:38   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Библию Фленова
нельзя ее неокрепшим читать, а окрепшие и не будут..
eval вне форума Ответить с цитированием
Старый 10.01.2014, 22:47   #9
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
нельзя ее неокрепшим читать, а окрепшие и не будут..
В конце августа 2013 Передо мной встала задача сотворить небольшую базу с оболочкой для согласования нескольких удаленных друг от друга рабочих мест.
Что такое програмирование я знаю на уровне 1 года "обучения" бэйсику по школьной программе.
Я к пенсии ближе чем к школе. Поэтому взял книжку какая попалась на глаза, чтоб к пенсии успеть.
govorun1 вне форума Ответить с цитированием
Старый 10.01.2014, 22:48   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в Библии Фленова рекоменуется
Вот почему я ее не читал )
Вот почему у меня все на мази
Цитата:
Поэтому взял книжку какая попалась на глаза, чтоб к пенсии успеть.
Фленов не тот автор, с которого стоит начинать. Он скорее наравне с Хайнлайном идет. Хотя на ночь не рекомендуется все равно.
I'm learning to live...

Последний раз редактировалось Stilet; 10.01.2014 в 22:51.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Волшебный toggle() или кривые руки? Jopses JavaScript, Ajax 3 14.02.2013 14:41
Волшебный QReport nVz БД в Delphi 1 04.10.2012 17:25
Волшебный квадрат Dima-War Свободное общение 14 26.08.2012 00:24
Волшебный квадрат 3-го порядка c0zak Помощь студентам 8 16.03.2010 22:20