Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как передать соединение с БД в подгружаемый модуль?


Страницы:   1 2 3

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 указана, но соединения с БД у нее еще нет


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо