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

Вниз

Вопрос по связке DLL - БД   Найти похожие ветки 

 
Belov   (2002-01-15 11:18) [0]

Добрый день !
Не подскажите решение такой проблемы
Главная программа использует модуль second.pas, который в свою очередь использует модуль данных DataModule1, через который идет обмен с БД
В second.pas я прописал класc
TWorkData = class
City_List: TStringList;
end;
соответственно есть конструктор

Есть two.dll в которой есть форма NewFrm
Данная форма также использует модуль second.pas и класс TWorkData
Первая проблема
Это нельзя сделать так
NewFrm.ComboBox1.Items.Assign(City_List)
только через цикл нормально добавляются элементы
при попытке загрузить что либо из БД
выдается ошибка Access viol...
Для вызова формы и работы с БД я сделал следующее
Добавил в NewFrm - Use Unit - DataModule

прописал переменную DataMod: TDataModule

форму вызываю таким образом

ShowD(Application.handle, WorkData, DataModule)

ShowD(H: THandle; P, DM: Pointer)
begin
...
NewFrm.WorkData:=P;
NewFrm.DataMod:=DM;
end;

Не подскажите в чем проблема, и возможно её решить ?


 
Belov   (2002-01-15 13:34) [1]

АУ люди помогите


 
Belov   (2002-01-15 14:24) [2]

Неужели нет никаких предложений ??????


 
Andrey007   (2002-01-15 15:03) [3]

А в чём проблема-то? Я, например, так и не понял. Поэтому меня особенно позабавил вопрос в конце "Не подскажите в чем проблема...?".


 
Belov   (2002-01-15 15:31) [4]

Проблема в том, что при попытке получить какие-то данные из БД
выдается ошибка
Access violition...bla-bla-bla

при вызове какой-либо процедуры класса, не треб. обращения к БД, все нормально работает


 
roottim   (2002-01-15 16:02) [5]

то что длл и приложение используют твой модуль который использует датамодуль :) это не значит что они работают в одной и той же сесси...
в длл надо тоже активизировать сессию с БД... и передать ей параметры из приложения...


 
Belov   (2002-01-15 16:51) [6]

угу
и расход соединений с БД будет ох какой хороший


 
roottim   (2002-01-15 17:01) [7]

незнаю...
тогда тебе придется передать адрес объекта сесии в длл... и там присоединить ко всем Dataset!... понятно..что он трафик ргрузит.. но ты можеш на время работы формы длл открывать сессию.. а по уходу из нее закрывать...
допустим я так поступаю при работе со справочниками... они не часто требуются... и все формы закатаны в длл


 
Belov   (2002-01-15 17:13) [8]

Я так пробовал делать - но все дело в том, что у меня следующая архитектура приложения

БД

Sserver.dll ( ActiveX Library ) - через него вся работа с БД

Main.exe - клиентская часть

Two.dll - клиентская часть - форма ввода и отображения данных, но, работает со справочниками(т.е. при изменении значения, загруз. одно, др. значение - загр. другое)



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

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

Наверх




Память: 0.46 MB
Время: 0.004 c
14-32341
Дремучий
2001-12-21 22:38
2002.02.11
Уважаемые Знатоки, житель села Гуево интересуется....


4-32372
Art
2001-12-13 15:50
2002.02.11
Как отловить сообщение о завершении работы виндов???


14-32330
chajnyk
2001-12-21 09:13
2002.02.11
Запуск програм


6-32301
Денис
2001-10-15 13:19
2002.02.11
Проблема с MAPI, письмо не отправляется.


1-32215
nmarket
2002-01-23 23:47
2002.02.11
Резервное копирование





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