Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.09.2012, 09:59
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable в цикле

Здравствуйте!
Имею десять таблиц в базе с одинаковой структурой. Соответственно, десять адотейблов (ADOTable1, ADOTable1,...,ADOTable10). Алгоритм обработки каждой таблицы один и тот же. Сейчас для обработки каждой таблицы он в теле программы повторяется 10 раз. А нельзя ли как-то зациклить, к примеру:
For i:=1 to 10 do
Begin
какое-то действие с полями i-той таблицы
end
Ответить с цитированием
  #2  
Старый 04.09.2012, 10:04
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Red_Garry
Здравствуйте!
Имею десять таблиц в базе с одинаковой структурой. Соответственно, десять адотейблов (ADOTable1, ADOTable1,...,ADOTable10). Алгоритм обработки каждой таблицы один и тот же. Сейчас для обработки каждой таблицы он в теле программы повторяется 10 раз. А нельзя ли как-то зациклить, к примеру:
For i:=1 to 10 do
Begin
какое-то действие с полями i-той таблицы
end
Код:
var
  i: Integer;
  Table: TADOTable;
begin
  for i := 1 to 10 do
  begin
    Table := FindComponent('ADOTable'+IntToStr(i)) as TADOTable;
...
  end;
end;
Ответить с цитированием
  #3  
Старый 04.09.2012, 10:28
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable в цикле

Большое спасибо за ответ - это то что нужно
Ответить с цитированием
  #4  
Старый 04.09.2012, 10:42
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Вдогонку:
Строка "Table: TADOTable;" не компилится. У меня Delphi7
Ответить с цитированием
  #5  
Старый 04.09.2012, 10:44
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Red_Garry
Вдогонку:
Строка "Table: TADOTable;" не компилится. У меня Delphi7
Добавь:
Код:
uses
  ..., ADODB;
Ответить с цитированием
  #6  
Старый 04.09.2012, 11:23
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable в цикле

ОК!!!!!!! СПАСИБО!
Ответить с цитированием
  #7  
Старый 04.09.2012, 13:45
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable в цикле

Если можно ещё вопрос?
После
Table := FindComponent('ADOTable'+IntToStr(i)) as TADOTable;
В Table почему-то nil, т.е. я так понимаю, что компонент не найден. Вообще-то все таблы у меня в отдельном DataModule - может это как-то влияет?
Ответить с цитированием
  #8  
Старый 04.09.2012, 13:48
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Red_Garry
Если можно ещё вопрос?
После
Table := FindComponent('ADOTable'+IntToStr(i)) as TADOTable;
В Table почему-то nil, т.е. я так понимаю, что компонент не найден. Вообще-то все таблы у меня в отдельном DataModule - может это как-то влияет?
Конечно влияет - искать нужно на той форме, на которой они лежат. Если они лежат например на DataModule1, то делаешь так:
Код:
Table := DataModule1.FindComponent('ADOTable'+IntToStr(i)) as TADOTable;
Ответить с цитированием
  #9  
Старый 04.09.2012, 13:51
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable в цикле

Всё! Теперь допетрил! Спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter