Из двух независимых app с общей БД

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 25 Март 2009, 21:55

Из двух независимых app с общей БД

Сообщение gopstop2007 »

Уважаемые помогите, напомните, запамятовал, делал давно последний раз в С6.3 сейчас пытаюсь сделать в С10 и не получается.
Есть два app (exe), оба в project как EXE и DLL с общим DCT.

Нужно один app PRINTED (a2) сделать, как DLL и связать его другим app MedicExs (a1) - EXE.
Сменил в (a2) Project с EXE на DLL скомпилировал - ошибок нет.
Добавил (a2) lib в (a1) при компиляции (a1) ошибки
Spoiler
Duplicate symbol: $FIRM::ADRESS in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:1
Duplicate symbol: $FIRM::DATE in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:2
Duplicate symbol: $FIRM::DATEOFISSUEOFPHYSICIANCERT in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:3
Duplicate symbol: $FIRM::NAMEANDDEGREEOFPHYSICIAN in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:4
Duplicate symbol: $FIRM::NAMEOFPHYSICIANCERTIFICATINGAU in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:5
Duplicate symbol: $FIRM::SIGNATUREOFPHYSICIAN in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:6
Ругается на глобальные данные которые в DCT, которые используют оба app.
Помню, что нужно поставить чекеты в Global Properties, а вот где и в каком порядке не помню :(
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2608
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Из двух независимых app с общей БД

Сообщение Дед Пахом »

В справке раздел "Creating a .DLL (Sub-Application)" всё подробно описывает.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4275
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Из двух независимых app с общей БД

Сообщение kreator »

Надо в одном поставить (в свойствах App) "Generate all files declaration". В этом же снять галку "Generate template globals and ABC's as EXTERNAL". А в другом App сделать соответственно наоборот.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 25 Март 2009, 21:55

Из двух независимых app с общей БД

Сообщение gopstop2007 »

kreator писал(а): 11 Сентябрь 2021, 15:05 Надо в одном поставить (в свойствах App) "Generate all files declaration". В этом же снять галку "Generate template globals and ABC's as EXTERNAL". А в другом App сделать соответственно наоборот.
Не работает.
Дед Пахом писал(а): 11 Сентябрь 2021, 12:10 В справке раздел "Creating a .DLL (Sub-Application)" всё подробно описывает.
Спасибо, но не отличается от multi=dll, не получается.
Проблема в том, что два APP, в одном (App1) используется MAV ODBC, второй (App2) FRB Report. Они не дружат по формату данных используемых в MAV.
App1 на MAV ODBC - программа с наполнением данных. App2 - только для печати FRB отчетов. Оба независимые EXE файлы, хотелось бы объединить в один EXE.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4275
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Из двух независимых app с общей БД

Сообщение kreator »

gopstop2007 писал(а): 12 Сентябрь 2021, 17:33 Не работает.
Я написал как у меня. И у меня работает. Если посмотреть на пример в поставке SV, то там так как я написал. Вы попробуйте сторонние классы загнать в одну App. В ту, где генерятся описание всех файлов и компилируются все ABC-классы.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3692
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

Из двух независимых app с общей БД

Сообщение Admin »

kreator писал(а): 12 Сентябрь 2021, 17:45 В ту, где генерятся описание всех файлов и компилируются все ABC-классы.
Я в крупной программе перенес классы в отдельную DLL, напрягало по каждому изменению классов перекомпилировать основную DLL с файлами. Очень уж долго.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
gopstop2007
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 25 Март 2009, 21:55

Из двух независимых app с общей БД

Сообщение gopstop2007 »

kreator писал(а): 12 Сентябрь 2021, 17:45
gopstop2007 писал(а): 12 Сентябрь 2021, 17:33 Не работает.
Я написал как у меня. И у меня работает. Если посмотреть на пример в поставке SV, то там так как я написал. Вы попробуйте сторонние классы загнать в одну App. В ту, где генерятся описание всех файлов и компилируются все ABC-классы.
Спасибо. А возможно, что то попроще, есть ли возможность запретить в моей подключаемой APP2 (FRB) обращаться, видеть, исключить из списка в DCT определенные файлы, в моем случае MAV ODBC?
Указать список файлов в APP2 (FRB), у которых структура (MAV) в DCT и которые не нужны в APP2 (FRB)?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4275
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Из двух независимых app с общей БД

Сообщение kreator »

Каждая App генерит описание только тех файлов, которые в ней используются. Посмотрите файл app2.clw. Только в любом случае они должны быть с опциями "External", "DLL". Опять же, декларация таблиц не влияет на работу с ними. Если Вы их не используете в App, в чём проблема?
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1584
Зарегистрирован: 25 Март 2009, 21:55

Из двух независимых app с общей БД

Сообщение gopstop2007 »

Спасибо всем, решил. Отключил в декларациях индивидуально каждый файл в глобальных настройках.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить