|
|
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Продублирую тут, потому что отдельного раздела на EAS нет. Есть ApplicationServer (EAServer от Sybase). На сервере приложений написаны компоненты. Так вот вопрос с какой версии Delphi и через какие объекты можно подключится к этому серверу приложений, создать представителя компонента и вызвать его метод. Если можно отправить к какому-нибудь примеру то буду благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 15:34 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
C CORBA ничего не выйдет скорее всего. Там то ли Delphi умеет только DII, а EAS только SII, то ли наоборот. Надо смотреть в сторону ActiveX/COM proxy. От версии дельфи это не зависит насколько я понимаю. Roy Kiesler (TeamSybase) Aug 9 2000, 12:00 am Subject: Re: Can I connect to Jaguar from DELPHI Client ?? You'll have to use a COM interface -- generate REG/TLB files for your Jag components from JagManager and deploy the jagproxy.dll you the Delphi client.В поставку EAS входит также и специальная ActiveX заглушка (stub), позволяющая реализовать присоединение к серверу приложений в виде зарегистрированных на клиентской машине СОМ-объектов. EAServer Programmer's Guide Part 6: ActiveX Components and Clients Chapter 20: Creating ActiveX Clients Procedure for creating ActiveX clients To create a new ActiveX client: Generate .tlb and .reg files for components Develop and test the ActiveX client Deploy the ActiveX client ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 16:25 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Спасибо, буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 11:26 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейC CORBA ничего не выйдет скорее всего. Там то ли Delphi умеет только DII, а EAS только SII, то ли наоборот. Надо смотреть в сторону ActiveX/COM proxy. От версии дельфи это не зависит насколько я понимаю. Roy Kiesler (TeamSybase) Aug 9 2000, 12:00 am Subject: Re: Can I connect to Jaguar from DELPHI Client ?? You'll have to use a COM interface -- generate REG/TLB files for your Jag components from JagManager and deploy the jagproxy.dll you the Delphi client. В поставку EAS входит также и специальная ActiveX заглушка (stub), позволяющая реализовать присоединение к серверу приложений в виде зарегистрированных на клиентской машине СОМ-объектов. EAServer Programmer's Guide Part 6: ActiveX Components and Clients Chapter 20: Creating ActiveX Clients Procedure for creating ActiveX clients To create a new ActiveX client: Generate .tlb and .reg files for components Develop and test the ActiveX client Deploy the ActiveX client Все получилось, спасибо за указанное верное направление. Расскажу поподробнее тут, вдруг кому нибудь пригодится: 1) Пишем Component и деплоим на EAS в некоторый Package. 2) Устанавливаем Microsoft Platform SDK (Core SDK) с сайта Microsoft: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ + устанавливаем пути к нему после установки 3) В EAS Manager на Package генерим TLB/REG, указывая "output directory" куда генерить TLB/REG, например "D:\activex", а ProxyServerLocation - путь где лежит jagproxy.dll, например "C:\sybase\EAServer\dll" 4) Устанавливаем на компьютере с Delphi клиента EAS из дистрибутива, его же надо будет установить на все клиентские машины. 5) Копируем полученные TLB/REG на компьютер с Delphi 6) Если нужно с помощью jagreg подправляем пути в reg файлах, например Код: plaintext 7) Выполняем REG файлы занося данные по ActiveX компоненту в реестр, их же надо будет выполнять и на всех клиентских машинах. 8) В Delphi импортируем TLB компонента (меню Project/Import Type Library, кнопка Add, кнопка Install) и инсталлируем полученииый пакет, если он не проинсталился автоматом (меню Component/InstallPackage). 9) Далее програмим код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Также приложил исходник Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 13:21 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Я попоробовал заставить работать этот пример у себя. У меня есть готовый package, (не мной написанный), который крутится на EAS. Сделал все, как в примере, только выбросил вызов методов (т.е. просто создал объект и потом отсоединился). В принципе все нормально до тех пор, пока не вызывается метод Disconnect. При этом в Delphi вываливается окно команд процессора и пока не выйдешь из отладки по Ctrl+F2, ничего не работает. Может ли это происходить, если сам компонент для EAS криво написан? Если да, то где можно почитать на что обратить внимание? Спасибо. С уважением, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 12:23 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Расскажите, пожалуйста, поподробней. Попробовал делать по написанному - не получается. Устанавливается коннект с EAServer, а при вызове метода говорит, что вызываемый метод не реализован. И для Microsoft Platform SDK (Core SDK)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 15:59 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
a12345Я попоробовал заставить работать этот пример у себя. У меня есть готовый package, (не мной написанный), который крутится на EAS. Сделал все, как в примере, только выбросил вызов методов (т.е. просто создал объект и потом отсоединился). В принципе все нормально до тех пор, пока не вызывается метод Disconnect. При этом в Delphi вываливается окно команд процессора и пока не выйдешь из отладки по Ctrl+F2, ничего не работает. Может ли это происходить, если сам компонент для EAS криво написан? Если да, то где можно почитать на что обратить внимание? Спасибо. С уважением, Александр. Та же ситуация... но мы пока разбираться не стали... оставили на потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2005, 17:00 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_ВиталийРасскажите, пожалуйста, поподробней. Попробовал делать по написанному - не получается. Устанавливается коннект с EAServer, а при вызове метода говорит, что вызываемый метод не реализован. И для Microsoft Platform SDK (Core SDK)? Поподробней, что, как, когда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2005, 17:02 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Сотников _ВиталийРасскажите, пожалуйста, поподробней. Попробовал делать по написанному - не получается. Устанавливается коннект с EAServer, а при вызове метода говорит, что вызываемый метод не реализован. И для Microsoft Platform SDK (Core SDK)? Поподробней, что, как, когда? Все же подключиться получилось: проблема была в том что, что при импортировании ActiveX компонента в EAServer последний не выставляет автоматом ProgId, который, как оказалось используется при поиске соответствующей dll в реестре. Вопросы снимаю. Правда, уже есть новые:) Может у вас есть опыт в реализации работы с базами даных (меня интересует Oracle 9)? Как можно использовать Connection caches в Делфи и нужно ли? Как лучше, реализовывать всю логику в одном компоненте, или разделить функции смежду несколькими? И как из одного компонента вызывать методы другого? P.S. То бишь для чего нужен Core SDK? Для генерации *.tlb достаточно одной утилиты midl.exe, что еще из SDK можно использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2005, 20:19 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
СотниковТа же ситуация... но мы пока разбираться не стали... оставили на потом. Я попробовал еще один вариант, не подключая в секции uses файл type library (т.е. создавая объект с помощью CreateOLEObject), отрабатывается все нормально без ошибок, но теперь возник следующий вопрос: В метод компонента EAS нужно передавать структуру и массив структур. Пробовал описывать такую же через record, но в параметр нужно передавать OleVariant. Если кто-нибудь знает, как это грамотно сделать - напишите пожалуйста. Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2005, 08:37 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_Виталий Сотников _ВиталийРасскажите, пожалуйста, поподробней. Попробовал делать по написанному - не получается. Устанавливается коннект с EAServer, а при вызове метода говорит, что вызываемый метод не реализован. И для Microsoft Platform SDK (Core SDK)? Поподробней, что, как, когда? Все же подключиться получилось: проблема была в том что, что при импортировании ActiveX компонента в EAServer последний не выставляет автоматом ProgId, который, как оказалось используется при поиске соответствующей dll в реестре. Вопросы снимаю. Правда, уже есть новые:) _Виталий Может у вас есть опыт в реализации работы с базами даных (меня интересует Oracle 9)? Опыт работы EAS и БД есть но не с Oracle, хотя я думаю что отличия такие же как и при работе PB и Oracle, если писать компоненты на PB. _Виталий Как можно использовать Connection caches в Делфи и нужно ли? Его не нужно использовать в Delphi, его нужно использовать в компоненте на EAS. _Виталий Как лучше, реализовывать всю логику в одном компоненте, или разделить функции смежду несколькими? И как из одного компонента вызывать методы другого? Можно по разному. У меня все реализовано в одном Package, но компоненты пишу разные для разных задач (смотрю на функционал и работу с данными) На PB: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Где lmy_component - это NVO (компонент в EAS). Package/Component - имя пакета и компонента на EAS _Виталий P.S. То бишь для чего нужен Core SDK? Для генерации *.tlb достаточно одной утилиты midl.exe, что еще из SDK можно использовать? У меня не было midl.exe поэтому я и ставил Core SDK. Для работы EAS он впринципе не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 16:49 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
a12345 СотниковТа же ситуация... но мы пока разбираться не стали... оставили на потом. Я попробовал еще один вариант, не подключая в секции uses файл type library (т.е. создавая объект с помощью CreateOLEObject), отрабатывается все нормально без ошибок, но теперь возник следующий вопрос: В метод компонента EAS нужно передавать структуру и массив структур. Пробовал описывать такую же через record, но в параметр нужно передавать OleVariant. Если кто-нибудь знает, как это грамотно сделать - напишите пожалуйста. Александр. А код можете привести, а то я в Delphi не программирую. А пример очень неоходим! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 16:50 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
СотниковА код можете привести, а то я в Delphi не программирую. А пример очень неоходим! Не вопрос ;). Пусть package называется pak_test, объект my_obj а метод test1 и он должен вернуть информацию в символьной строке (BSTR). Тогда это будет примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 11:08 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за пример! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 12:41 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
a12345 СотниковА код можете привести, а то я в Delphi не программирую. А пример очень неоходим! Не вопрос ;). Пусть package называется pak_test, объект my_obj а метод test1 и он должен вернуть информацию в символьной строке (BSTR). Тогда это будет примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Александр. Я попробовал сделать как вы говорите, но ошибка не исчезла. Если я пытаюсь удалить ОЛЕ-объект oObj :=NULL. При этом возникает та же ошибка. Кроме того, на самом EAServer ресурсы не освобождаются. То есть однажды созданные объекты остаются активными до перегрузки сервера. В настройках объяекта я указал только Bind Object, то есть пул использовать не должен. Что это может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 15:48 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_ВиталийЕсли я пытаюсь удалить ОЛЕ-объект oObj :=NULL. Я не большой знаток Delphi, но сдается мне, что вот тут то у Вас и есть ошибка. На сколько я помню, для разрушения объекта нужно вызывать object_name .Free а совсем не приравнивать объект к NULL... //Сорри, если я не прав и ввожу Вас в заблуждение... --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 16:26 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_Виталий Я попробовал сделать как вы говорите, но ошибка не исчезла. Если я пытаюсь удалить ОЛЕ-объект oObj :=NULL. При этом возникает та же ошибка. Это ни как не влияет на объект на EAS _Виталий Кроме того, на самом EAServer ресурсы не освобождаются. То есть однажды созданные объекты остаются активными до перегрузки сервера. В настройках объяекта я указал только Bind Object, то есть пул использовать не должен. Что это может быть? Он может попадать в пул, за это отвечает не то свойство, которые написали вы, а свойство "Pooling". Во вторых, если создаете StateFull компонент (свойство "Automatic demarcation/deactivation"), то пока вы ему complete не скажите он будет висеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 16:33 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Сотников _Виталий Я попробовал сделать как вы говорите, но ошибка не исчезла. Если я пытаюсь удалить ОЛЕ-объект oObj :=NULL. При этом возникает та же ошибка. Это ни как не влияет на объект на EAS _Виталий Кроме того, на самом EAServer ресурсы не освобождаются. То есть однажды созданные объекты остаются активными до перегрузки сервера. В настройках объяекта я указал только Bind Object, то есть пул использовать не должен. Что это может быть? Он может попадать в пул, за это отвечает не то свойство, которые написали вы, а свойство "Pooling". Во вторых, если создаете StateFull компонент (свойство "Automatic demarcation/deactivation"), то пока вы ему complete не скажите он будет висеть. Из установленных свойств только "Bind Object". Мне кажется проблема в том, что некорректно завершается работа с компонентом, только не знаю почему. Возможно, виноват exception, который возникает всякий раз при завершении приложения или принудительном отключении от компонента. Что значит сказать complete? Это тот же Disconnect? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 18:46 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_Виталий Что значит сказать complete? Это тот же Disconnect? Connect/Disconnect - это клиента к серверу EAS, а Create/Destroy и Activation/Deactivation компонента это совсем другое. Вот тут про жизненный цикл компонента: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.easerver_5.2/html/easpg/easpgp8.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 19:07 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Сотников _Виталий Что значит сказать complete? Это тот же Disconnect? Connect/Disconnect - это клиента к серверу EAS, а Create/Destroy и Activation/Deactivation компонента это совсем другое. Вот тут про жизненный цикл компонента: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.easerver_5.2/html/easpg/easpgp8.htm Разобрался, спасибо Остался самый главный вопрос: как работать с ConnectionCashe из Делфи? В документации описан пример для C++, который использует JagAPI. А как быть с Делфи? Конвертировать сишные файлы заголовков в паскалевские - утомительная и, возможно, нереализуемая задача. Может кто-то встречал пример использования JagAPI в Делфи? Буду очень благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 20:17 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
как работать с ConnectionCashe из Делфи? зачем? клиенту Connection Cache не нужны. Вы серверные компоненты ДЛЯ EAServer на Delphi пишете? если да, то почему не на Java или PB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 21:09 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей как работать с ConnectionCashe из Делфи? зачем? клиенту Connection Cache не нужны. Вы серверные компоненты ДЛЯ EAServer на Delphi пишете? если да, то почему не на Java или PB? Андрей прав... Пример на C++ там написан потому что серверные компоненты можно писать на нем. Клиенту нужен только коннект к EAS, а ConnectionCashe - компоненту на EAS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2005, 18:46 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Сотников ЗоринАндрей как работать с ConnectionCashe из Делфи? зачем? клиенту Connection Cache не нужны. Вы серверные компоненты ДЛЯ EAServer на Delphi пишете? если да, то почему не на Java или PB? Андрей прав... Пример на C++ там написан потому что серверные компоненты можно писать на нем. Клиенту нужен только коннект к EAS, а ConnectionCashe - компоненту на EAS. Спасибо за советы Все компоненты писал на Делфи - я превожу проект, в котором был реализован собственный сервер приложений, в среду EAServer. При этом нужно сохранить хотя бы часть кода дабы не переписывать все заново. Поэтому Делфи без особых вариантов... Использовать Connection Cashes из Делфи не получилось, пришлось написать компонент подключения к БД на PB - все работает. Не получается только передавать ResultSets из PB-компонента. Может знаете как? Или может проще на Java написать компонент для подключения к БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:01 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
_ВиталийНе получается только передавать ResultSets из PB-компонента. Может знаете как? Или может проще на Java написать компонент для подключения к БД? А у PB баг с генерацией и восстановление resultsetов. Написал в поддержку... жду... PB 9.0.2 7578 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 15:13 |
|
||
|
EAServer и Delphi
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Смысл в том, что при возврате из компонента ResultSet датасторе из которого он сделан дестроить не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32899813&tid=1338533]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 405ms |

| 0 / 0 |
