Главная страница
    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.009 c
3-2029
ККВ
2004-01-06 13:43
2004.02.02
Как поместить данные из двух Query в один DBGrid?


7-2389
Arm79
2003-11-14 14:30
2004.02.02
потоки


3-1964
pashtet
2004-01-09 14:43
2004.02.02
Paradox+ODBC не работает функция upper()?


1-2210
SGU_
2004-01-22 07:05
2004.02.02
Сохранение данных в ЕXCEL


3-1946
SergP
2004-01-09 16:10
2004.02.02
Можно ли сделать такой запрос?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский