Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Вниз

Как получить дескриптор текущего соединения в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
8-2232
Шишкин Илья
2003-09-26 13:17
2004.02.02
Изменение уровня низких и высоких частот


3-2032
Mery
2004-01-06 07:52
2004.02.02
Экспорт SQL в EXCEL


1-2185
Zheks
2004-01-21 11:09
2004.02.02
округление вверх с количеством знаков после запятой


1-2119
alsov
2004-01-19 15:51
2004.02.02
Adobe Photoshop SDK


1-2131
NailMan
2004-01-19 15:14
2004.02.02
Перехват EConvertError





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский