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

Вниз

Как передать в DLL , TpFIBDatabase. ?????   Найти похожие ветки 

 
Alex___________   (2004-02-27 10:29) [0]

===  Пишу на Delphi, БД FireBird =====
Создал DLL передаю в нее TpFIBDatabase - нет проблем ! В самой DLLине есть форма и TpFIBDataSet. Присваиваю TpFIBDataSet(у) знвчение TpFIBDatabase ....... В общем все работает до тех пор пока не пытаешся открыть TpFIBDataSet.
У кого есть опыт разработки DLL+FireBird !!! Как это все сделать?

Люди !!! Может кто то сталкивался с такой задачей !!!! Подсобите советом. А еще лучше с каким нибудь примерчиком !!!!
За рание благодарен !!


 
Johnmen ©   (2004-02-27 10:47) [1]

>В общем все работает до тех пор пока не пытаешся ...

А потом что ?
И почему не передана TIBTransaction ?


 
Alex___________   (2004-02-27 11:03) [2]

Johnmen ©  

Да я уже, и транзакции присваевал ...
Выглядело это примерно так -
У TpFIBDataSet(а) в DLL , есть своя транзакция !

TpFIBDataSet.Database := TpFIBDatabase;
ТpFIBTransaction1.DefaultDataBase := TpFIBDataSet.Database;

Всеравно выдает то недопустимое обращение к памяти по адресу, то память не может быть Read !!! В общем все, что хочеш, ток не то что надо !!!

Если все работает приши пожалуйста пример !!!!


 
Desdechado ©   (2004-02-27 13:11) [3]

бывает, если dll и exe скомпилированы с разными версиями библиотек, т.к. описания классов в dll свои


 
Alex___________   (2004-02-27 13:23) [4]

Ребята !!! Сам написал прогу. Просто ехе(шник) уже имеет не слабый размер. Теперь стала делема... надо все куда то выносить. Вот выношу в DLL. Можно конечно в DLL создать новое соединение к базе - но тогда каждое окно будет работать в пределах своего соединения. Сетка ляжет в 23 секунды....
По сему надо передать текущее соединение в DLL т.е. TpFIBDatabase. Все компилится и делается в Delphi7, все в пределах одной версии. Ядро писал тоже я, и Dll тоже я пишу. Все компилиться тоже на моем компе. В разработке учавствую только я :)) И во внедрении тоже.
Мне просто нужна помощь ! Просто надо, что бы кто то привел пример как это сделать.... ПОЖАЛУЙСТА ПОМОГИТЕ !!!!!!!


 
Petr V. Abramov ©   (2004-02-27 13:23) [5]

TpFIBDatabase поместить в BPL и enjoy :)


 
Alex___________   (2004-02-27 15:07) [6]

Petr V. Abramov ©  
> TpFIBDatabase поместить в BPL и enjoy :)
Вот этого я делать не умею. Как то DLL  есть  DLL .....
Тем более, что уже DLLки есть. Просто вот с базой я с них рабоать не могу :((


 
Alex___________   (2004-02-27 18:35) [7]

ПОМОГИТЕЕЕ !!


 
Desdechado ©   (2004-02-27 18:41) [8]

у тя раннее или позднее связывание с DLL ?


 
Petr V. Abramov ©   (2004-02-27 18:52) [9]

> Вот этого я делать не умею. Как то DLL  есть  DLL .....
 Учитесь :) А то так будете кричать "ПОМОГИТЕЕЕ !!"


 
Alex___________   (2004-03-01 14:54) [10]

>у тя раннее или позднее связывание с DLL ?
Статическое !!


 
Виталий Панасенко   (2004-03-01 18:20) [11]

Подключаться надо как к удаленному серверу, с указанием IP


 
DrPass ©   (2004-03-01 21:17) [12]

Фигня, просто очередной программист забыл почитать Большой_Синий_Комментарий при создании проекта DLL. uses ShareMem, господа...


 
Alex___________   (2004-03-02 10:16) [13]

> Фигня, просто очередной программист забыл почитать .....
Очень смешно !! А чего же очередной программист - так и не внес ни каких глобальных разъяснений в "не прочитанный" мной вопрос ?
Все что хочешь, только не то, что надо !!!!!!!
Небольшой пример я думаю в корне переменил бы мое мировозрение !!


 
Asdor ©   (2004-03-02 13:22) [14]

Если ShareMem не поможет, то компилируй проекты (и exe и DLL) с Runtime Packages...


 
Brenagwynn ©   (2004-03-02 13:44) [15]

Передавай TpFIBDatabase и ТpFIBTransaction как указатели. А в DLL-ке явно преобразовывай. И не надо никаких ShareMem.


 
Zorik ©   (2004-03-02 13:57) [16]

С компонентами IBX(update 6.08) я делаю так: в основной проге есть IBDataBase и IBTransaction. Там же и создается подключение. А в dll есть тоже IBDatabase и скоко нужно датасетов (IBQuery IBTable) и скоко нужно IBTransaction для которих IBDatabase. Главное чтов IBDatabase которая в dll не била открита (при проектировании ее можно подключить а потом отключить). А все передается через Handle

uses IBHeader;

procedure ConnectInDLL(Handle: THandle; BaseHandle: TISC_DB_HANDLE); stdcall;
begin
 try
   Application.Handle:=Handle;
   DllForm:=TDllForm.Create(Application);
   with DllForm do
   begin
     DllDatabase.SetHandle(BaseHandle);
     ShowModal;
     DllDatabase.SetHandle(nil);
     if assigned(DllForm) then Free;
   end;
 except
   ShowMessage("Error");
 end;
end;



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

Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
4-1075284257
Dennis S
2004-01-28 13:04
2004.04.04
Хук на нажатие кнопки в другом приложении


1-1079091186
_Guest_
2004-03-12 14:33
2004.04.04
методы объектов


4-1074605528
menart
2004-01-20 16:32
2004.04.04
Диалоговое окошко входа в домен!


6-1075506534
tchn1
2004-01-31 02:48
2004.04.04
определить подключение к интернету


1-1079425364
Rule
2004-03-16 11:22
2004.04.04
Непонятки с МDI приложением ...





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