![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать соединение с БД в подгружаемый модуль?
Matveih1 © (2008-10-07 19:07:00)Есть основная программа где есть DataBase. В основной программе устанавливается подключение к БД. По мере необходимости грузятся модули. Как передать установленное соединение в подгружаемый модуль? Если можно пример. В модуле нет DataBase. Я не понимаю что и чему надо передавать.
Сергей М. (2008-10-08 12:52:00) [21]
> дальше мне с ним что делать?
Ну как что ?
Получить и использовать по прямому назначению, разумеется ..
clickmaker (2008-10-08 12:51:00) [22]> во время выполнения Query.open запрашивает пароль
LoginPrompt = false, если хочешь указать пароль в параметрах TDatabase или сделать свое окно логина
Matveih1 (2008-10-08 12:50:00) [23]
> Сказано же - значение типа TDatabase.
передаю, а дальше мне с ним что делать?
Сергей М. (2008-10-08 12:47:00) [24]
> что передать?
Сказано же - значение типа TDatabase.
Передавать его следует фактическим параметром процедуры, объявленной и реализованной в подключаемом модуле.
Matveih1 (2008-10-08 12:44:00) [25]
> Пердай фактическим параметром этой процедуре.
что передать? Не как не пойму что передать и чему передать?
Matveih1 (2008-10-08 12:43:00) [26]указана. Во время проектирования если выполнить query (Query.Active := true) все нормально (данные отображаются в DBGried), а вот во время выполнения Query.open запрашивает пароль
Сергей М. (2008-10-08 12:42:00) [27]
> Чему пердать?
Пердай фактическим параметром этой процедуре.
Правильный$Вася (2008-10-08 12:38:00) [28]
> Если при выполнении первого запроса, запраштваеься пароль
> и логин, но соединение уже есть
значит, в твоей TQuery не указана Database
укажи ту самую,из "основной программы"
Matveih1 (2008-10-08 12:33:00) [29]Сергей М
> см. [8]
Чему пердать???
> Правильный$Вася (08.10.08 12:11) [16]
> что значит "передать"?
> если его нужно использовать, так используй существующий
Использовать это более верно. Как использовать? Если при выполнении первого запроса, запраштваеься пароль и логин, но соединение уже есть
Сергей М. (2008-10-08 12:13:00) [30]
> Matveih1 © (08.10.08 09:25) [13]
см. [8]
Правильный$Вася (2008-10-08 12:11:00) [31]что значит "передать"?
если его нужно использовать, так используй существующий
или тебе нужно его физически из одного места взять и в другое переложить, чтоб в первом месте не осталось?
Palladin (2008-10-08 09:27:00) [32]яхдр :) см. Поросенок Винни-Пух © (08.10.08 09:18) [8]
Vlad Oshin (2008-10-08 09:27:00) [33]у меня примерно так
модуль для подключения делаеь:
if ossWork.Connected then
fSessionMessage.Msg := NQM_SET_SESSION;
fSessionMessage.Instance := ossWork;
Application.MainForm.Dispatch(fSessionMessage);
Апликейшн рассылает по всем модулям
for i := 0 to Libraries.Count - 1 do
with TLibrary(Libraries[i]) do
if KnownMessage(TMessage(Message).Msg) then PostMessage(Message);
в модулях(в одном из)
case TMessage(Message).Msg of
NQM_DEPARTMENT_SHOW :
ShowDepartment;
NQM_SET_DEPARTMENT :
SetDepartment(TNQDepartmentMessage(message).DepartmentInfo);
NQM_SET_SESSION :
dtmDepartment.SetSession(TNQInstanceMessage(Message).Instance);
procedure TdtmDepartment.SetSession(ASession: TObject);
var
i: integer;
begin
if (ASession <> nil) then
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TOracleQuery then
TOracleQuery(Components[i]).Session := TOracleSession(ASession)
else if Components[i] is TOracleDataset then
TOracleDataset(Components[i]).Session := TOracleSession(ASession);
Matveih1 (2008-10-08 09:25:00) [34]PalladinDataBase -- компонетнт для соединения с БД
Василий Жогарев
> Передавай указатель на соединение...
Чему передавать??? DataBase в модуле? не понимаю я!
Сергей М.Напишите пример.
Поросенок Винни-Пух (2008-10-08 09:20:00) [35]зачем нам знать что такое дабабэйз чтобы передать его параметром?
Сергей М. (2008-10-08 09:19:00) [36]
> что нужно передать
Значение типа TDatabase в вызывающем коде.
> и чему
Переменной или параметру функции в вызываемом коде.
Василий Жогарев (2008-10-08 09:19:00) [37]
> Matveih1 © (08.10.08 09:10) [7]
> Я не понимаю что нужно передать и чему!
> В модуле нужен Database? Или можно использовать Database
> из основной программы (собственно это и хочется)?
Передавай указатель на соединение...
Palladin (2008-10-08 09:18:00) [38]и все таки вам нужен программист... который хоть нормально здесь объяснит что это такое, DataBase
Поросенок Винни-Пух (2008-10-08 09:18:00) [39]хочется - передай.
procedure PeredachaDatabaysa(ADatabase : TDatabase);
begin
end;
Matveih1 (2008-10-08 09:10:00) [40]Я не понимаю что нужно передать и чему!
В модуле нужен Database? Или можно использовать Database из основной программы (собственно это и хочется)?