Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

Как получить дескриптор текущего соединения в FB?   Найти похожие ветки 

 
Viktor   (2004-01-07 23:00) [0]

Перешел с BDE на IBX и встретился с проблемой передачи дескриптора текущего соединения с приложения в DLL.
Смысл такой: из приложения вызывается DLL, которая должна брать информацию из текущего соединения. В BDE использовался модуль BDE и указатель HDBIDB. А как это сделать в IBX никак не пойму. Помогите пожалуйста!


 
jack128 ©   (2004-01-07 23:29) [1]

IBDatabase1.Handle???


 
Viktor   (2004-01-07 23:43) [2]

Да, я согласен. В справке нашел. Но как его использовать, свойство ведь только для чтения.
Я делаю так:
В приложении создаю функцию:
function TDMClient.GetHandle: THandle;
begin
result:=IBDatabase1.??????
end;
а там этого свойства нет.


 
jack128 ©   (2004-01-07 23:58) [3]


> а там этого свойства нет.
Как нет? Обнови IBX.
А вот как это использовать - даже не представляю(ну то есть представляю, но что то я сильно сомниваюсь, что ты будешь IB Api осваивать :-))...


 
Viktor   (2004-01-08 00:01) [4]

Хорошо, как можно сделать по другому?


 
Desdechado ©   (2004-01-08 12:58) [5]

а просто указатель на IBDatabase передать нельзя?


 
Viktor   (2004-01-08 22:11) [6]

Все дело в том, что при запуске DLL создается второе соединение, а нужно, что бы все происходило в рамках одного соединения. Извините, может я не ясно выразился. То есть при запуске приложения на сервере показан 1 пользователь, при запуске DLL - 2. Как сделать что бы остался 1.


 
jack128 ©   (2004-01-08 22:57) [7]


> а просто указатель на IBDatabase передать нельзя?

Можно. Если компелировать DLL и основное приложение с run time пакетами.. Можно даже не указатель на IbDatabase передавать, а сам IbDatabase, ибо он сам и есть по сути - указатель..


 
Viktor   (2004-01-08 23:00) [8]

Простите, я не совсем понял (начинающий :(). Нельзя ли привести простенький пример.


 
jack128 ©   (2004-01-08 23:13) [9]

В основной проге и в dll"ке залазишь в Project|Options|Packages и ставишь галку "Build with run time packages".

И в основной проге пишешь такую функцию.

function GetDbConnection: TIbDatabase; export;
begin
Result := MainDataModule.MyIbDatabase;
end;

а во всех dll"ках вызываешь эту функцию и к этому IbDatabase вешаешь свои IbQuery и тд.
Только учти, чт с твоей программой нужно будет распростронять run time пакеты.


 
Viktor   (2004-01-08 23:21) [10]

Всем большое спасибо,особенно jack128, кажется все понял.


 
Viktor   (2004-01-08 23:27) [11]

Еще один вопрос. А другого пути нет?


 
jack128 ©   (2004-01-08 23:58) [12]

только ib api, со всеми вытекающими "удобствами"


 
Viktor   (2004-01-09 00:02) [13]

Ясно. Ну что ж будем бороться.



Страницы: 1 вся ветка

Текущий архив: 2004.02.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
1-2156
OlegL
2004-01-21 17:03
2004.02.02
ComboBox


6-2267
favorit_
2003-11-28 00:09
2004.02.02
Изменение настроек IE


1-2103
Barbarian five
2004-01-19 22:22
2004.02.02
Как сделать освещение TImage (линейное, радиальное)


1-2056
ORMADA
2004-01-22 10:26
2004.02.02
TFileStream


1-2173
alexnmsk
2004-01-21 14:03
2004.02.02
Вопрос по динамическому массиву