![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать соединение с БД в подгружаемый модуль?
Matveih1 © (2008-10-07 19:07:00)Есть основная программа где есть DataBase. В основной программе устанавливается подключение к БД. По мере необходимости грузятся модули. Как передать установленное соединение в подгружаемый модуль? Если можно пример. В модуле нет DataBase. Я не понимаю что и чему надо передавать.
Правильный$Вася (2008-10-08 16:09:00) [1]это какое-то самолюбование в мазохистской манере
Сергей М. (2008-10-08 16:02:00) [2]
> Могу удивить
Да, удивил. Голым задом ежа)
> Пакеты грузятся через Interface
Да хоть через луну !
Я тебе про фому, а ты все про ерему гнешь)
Твоя задача решается сборкой всехвзаимодействующих модулей с BwRTP !
Твои bpl-пакеты уже собраны с этой опцией, осталось собрать хост-приложение, их использующее. А через что там твои пакеты тобой грузятся - не имеет никакого значения.
Matveih1 (2008-10-08 15:55:00) [3]
> Вот приложение и собери с этой опцией.
Могу удивить. Пакеты грузятся через Interface.
Johnmen (2008-10-08 15:43:00) [4]Пациент неоперабелен...
Сергей М. (2008-10-08 15:36:00) [5]
> у пакетов этой опции нет, только у приложений
Вот приложение и собери с этой опцией.
Правильный$Вася (2008-10-08 15:35:00) [6]случай тяжелый, вероятно, неизлечимый
склоняюсь к [1]
автор не думает совершенно
причем все попытки ему помочь сводит к одному "пробовал - лажа", а курить справку торчащие пальцы мешают
Vlad Oshin (2008-10-08 15:34:00) [7]
> Если в каждом пакете использовать свой DataBase
просто объявить, никто не заставляет использовать
memo1:=memo2;
memo1.Lines.Add('QQQ');
В каком мемо будут строки? Во втором.
Matveih1 (2008-10-08 15:31:00) [8]
> Собери оба проекта с установленной опцией использования
> ран-тайм пакетов - ти будет тебе счастье.
у пакетов этой опции нет, только у приложений. В Requires пакета все что нужно прописано.
> берется компонент БД в модуле, на него настраиваются другие
> компоненты.
> Передается подцепленный компонент БД(один фиг - указатель).
>
> Нашему компоненту присвается переданный. DataBase1:= DataBase2
>
> Все.
Если в каждом пакете использовать свой DataBase то все работает, но хотелось бы использовать один DataBase из основной программы
Сергей М. (2008-10-08 15:23:00) [9]
> Matveih1
Иными словами, для того чтобы два (или более) модуля могли использовать один и тот же объект TDataBase, они должны использовать один и тот же объект TSession. А у тебя они разные.
Сергей М. (2008-10-08 15:18:00) [10]
> Matveih1 © (08.10.08 14:38) [32]
> у TQuery есть поле DatabaseName где указывается алиас БД. И он там указан
Собери оба проекта с установленной опцией использования ран-тайм пакетов - ти будет тебе счастье.
Поросенок Винни-Пух (2008-10-08 15:15:00) [11]Vlad Oshin ©
здесь опера другая
Vlad Oshin (2008-10-08 15:12:00) [12]берется компонент БД в модуле, на него настраиваются другие компоненты.
Передается подцепленный компонент БД(один фиг - указатель).
Нашему компоненту присвается переданный. DataBase1:= DataBase2
Все.
Johnmen (2008-10-08 15:06:00) [13]
> у TQuery есть поле DatabaseName где указывается алиас БД.
> И он там указан.
Правильные пацаны там указывают имя БД, указанное в TDatabase.
Поросенок Винни-Пух (2008-10-08 15:06:00) [14]у TQuery есть поле DatabaseName где указывается алиас БД. И он там указан.
вот и причина.
Matveih1 (2008-10-08 14:38:00) [15]
> Database - это поле у TQuery, его нужно указывать
у TQuery есть поле DatabaseName где указывается алиас БД. И он там указан.
> В твоем случае "указать DataBase" означает "присвоить св-
> ву Database объекта Query значение, полученное фактическим
> параметром процедуры PeredachaDatabaysa"
Query1.Database := ADatabase (ADatabase: TDataBase [8]) так у Query свойство Database только для чтения.
если Query1.Database.Handle = ADatabase.Handle то ругается на Access Violation
Правильный$Вася (2008-10-08 14:09:00) [16]
> 1. DataBase указана. Я соединяюсь через BDE соответственно
> использую алиас
Database - это поле у TQuery, его нужно указывать
короче
пилите Шура, справку, пока F1 не затупится
Сергей М. (2008-10-08 14:08:00) [17]
> Matveih1 © (08.10.08 13:27) [28]
В твоем случае "указать DataBase" означает "присвоить св-ву Database объекта Query значение, полученное фактическим параметром процедуры PeredachaDatabaysa"
Поросенок Винни-Пух (2008-10-08 14:06:00) [18]Это не лечится
Matveih1 (2008-10-08 13:27:00) [19]
> это м.б. только в 2 случаях
> 1. database не указана
> 2. database указана, но соединения с БД у нее еще нет
1. DataBase указана. Я соединяюсь через BDE соответственно использую алиас
2. Я специальн ручками прописал перед загрузкой модуля
if not DataModule1.bd.Connected then
DataModule1.bd.Connected := true;
Все равно просит пароль
Правильный$Вася (2008-10-08 12:57:00) [20]
> во время выполнения Query.open запрашивает пароль
это м.б. только в 2 случаях
1. database не указана
2. database указана, но соединения с БД у нее еще нет