пишу программу для работы с SQL сервером, использую для доступа компонент ADOConnection. Если БД одна - проблем нет, все соединяется. Для подключения ко второй базе переписываю свойства компонента. Но после этого почему-то не соединяется, пишет что БД уже открыта (операция не допускается, если объект открыт), хотя параметры все те же самые и БД предварительно была закрыта. Если добавлять еще один ADOConnection и потом переключать на него все указатели (DataSet,DataSource) - то все работает. Если короче: для разных БД (кто их знает сколько их будет) хочу использовать один компонент, а не клонировать их для каждой новой базы. БД разные в принципе: разные таблицы в РАЗНЫХ базах, с разными таблицами в ОДНОЙ базе проблем тоже нет.
Zombie на уровне SQL-запроса нельзя решить проблему? Обращаться ко 2й базе данных через полное имя объекта - dbname.owner.objectname.
ну написал бы кусочек, хотя в принципе я задаю это в ADOConnection->ConnectionString=""Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Databasename;Data Source=server"; ADODataSet1->CommandText="select * from tttttt"; Databasename- название базы ttttt - имя таблицы
Zombie прсто пишешь следующий запрос примерно так "select * from database2.dbo.table2" и он будет выполняться из того же коннекта, если достаточно разрешений во второй базе данных.