C++ Builder - ADOConnection
2505
4
Странная получается вещь.
Для доступа к данным из приложения использую ADOConnection. Один для множества ADOQuery, расположенных на множестве форм.
В программе доступно редактирование пути к используемой БД.
Так вот, после изменения в run-time пути к БД пользователем перегружаю ADOConnection, чтобы он законнектился к указанной базе.
А как быть с ADOQuery? Ведь их Active сразу же становится false, а перегружать их вручную - подход тупой и неоправданно трудоемкий.

Кому-то, возможно, покажется, что и ADOConnection ресетать по ходу выполнения программы - глупая затея, однако эта функциональность действительно требуется.
scanner
Если СЏ правильно РїРѕРЅСЏР», Рё тебе нужно установить Active РІ true Сѓ множества TADOQuery РЅР° форме(датамодуле) без лиС?РЅРёС… телодвижений, то сделай цикл РїРѕ всем контролам расположенным РЅР° форме, Рё если тип контрола TADOQuery устанавливай его свойтво Active РІ true.
osse
Дело в том, что программа состоит из большого числа форм, использующих TQDOQuery для доступа к разным таблицам одной базы данных. Доступ осуществляется через один TADOConnection, общий для всех TADOQuery.
Учитывая количество форм, перегрузка всех TADOQuery в цикле просто неприемлема. Есть ли вариант обойти этот способ?
scanner
А нельзя все ADOQuery держать в одном DataModule?
scanner
Блин уже почити не помню ни билдера ни дельфу.
А через Event'ы это никак не разрулить?

Допустим подписать все свои TADOQuery на событие TADOConnection.OnConnect или такого на дельфе не получится?

Или вообще в тупую, отнаследуйся от TADOConnection, добавь к нему еще
private list m_QueryList
и метод типа
RegisterQuery(TADOQuery* query)
{
m_QueryList.Add(query);
}

ну и в методе connect пробегайся по всему листу и активируй все Query.