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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 04:36   #1
lovetolaugh
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 28
По умолчанию Переключение между таблицами.

Доброго времени суток. Возникла следующая проблема: при работе программы необходимо обращаться к разным таблицам БД (порой в одном цикле). При выполнении команды

adotable.tablename := 'xxx';

просит сначало прервать соединение с БД. Вот и приходится делать так:

adotable.active := false;
adotable.tablename := 'xxx';
adotable.active := true;

Из-за этого происходит мерцание...
Можно ли обратиться к полям другой таблицы не прерывая связи?

Последний раз редактировалось lovetolaugh; 12.04.2011 в 04:38.
lovetolaugh вне форума Ответить с цитированием
Старый 12.04.2011, 04:50   #2
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Используйте два ADOConnection
Vikenty вне форума Ответить с цитированием
Старый 14.04.2011, 21:26   #3
lovetolaugh
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Vikenty Посмотреть сообщение
Используйте два ADOConnection
Спасибо за ответ. Но предложенная идея навела на мысль - а нельзя ли использовать два adotable (с одним adoconnection)?
lovetolaugh вне форума Ответить с цитированием
Старый 14.04.2011, 21:50   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не можно, а нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.04.2011, 01:48   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка

у меня такие же затруднения, поетому не стал новую тему открывать, надеюсь модераторы не будут ругать, если задам вопрос здесь
Код:
    ADOQuery1.Active:=False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM FirstTabel Where (FTabelCol1 Like "'+IDstr+'");');
    ADOQuery1.Active:=True;
    if DataSource1.DataSet.FieldByName('FTabelCol1').AsString <> '' then
    begin
      DBEdit1.DataField := 'FTabelCol2';
      try
        DBImage1.DataField := 'FTabelCol3';
      except;
      end;
      ADOQuery1.SQL.Add('SELECT * FROM SecondTable Where (StableCol1 Like "'+IDstr+'");');
      ShowMessage(DataSource1.DataSet.FieldByName('STableCol2').AsString);    
    end;
без последних 2-х строк все работает как надо, а если подключаю еще 1 таблицу,
она вроди подключаеца, но в при попытке вывести сообщение выдает ошибку
Цитата:
AdoQuery1: Field 'STableCol2' not found.
P.S. вывожу сообщение ShowMessage для проверки, потом буду присваивать строковои перемеои
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 15.04.2011, 08:31   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Нельзя 2 SELECT-а в один запрос без UNION, тем более в активный ADOQuery
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.04.2011 в 09:45.
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает переключение между формами!!! Нюся Microsoft Office Access 3 23.01.2011 12:18
Переключение между книгами stas77 Microsoft Office Excel 5 03.11.2009 19:00
Переключение между формами (Delphi) Zo0M Помощь студентам 3 09.07.2009 09:05
Как настроить переключение между элементами управления, созданных на листе? RGZZ Microsoft Office Excel 2 01.05.2009 08:47
Связь между таблицами Катрина БД в Delphi 3 17.05.2008 18:24