powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ANY vs HRESULT
11 сообщений из 11, страница 1 из 1
ANY vs HRESULT
    #35060491
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется ф-я:
HRESULT connect( BSTR serverAddress
, BSTR userName
, BSTR password
)
Описание типа HRESULT

Вызов функции:

integer result
any qq
OLEObject myoleobject

myoleobject = CREATE OLEObject
result = myoleobject.ConnectToNewObject( "DFAPILib.Database")
if result<> 0 then
MessageBox("Error", result)
end if
qq=myoleobject.connect("MSFO:17170","sysadmin","")

if isNULL(ClassName(qq) ) then
MessageBox("Error", 'NULL')
end if

Проблема в том, что переменная qq принимает значение NULL, а судя по описанию должно сопоставить возвращаемому значению тип long.
Можно было бы предположить, что происходит ошибка при вызове функции qq=myoleobject.connect("MSFO:17170","sysadmin",""), но открывается диалоговое окно подключения к базе -> обращение к функции было.
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35060916
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new
Описание типа HRESULT

Этот тип представляет собой 32-битное число.
это ulong или long.
при чем тут чисто билдеровское Any к явно внешнему OLE?
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35061444
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В случае указания для переменной qq типа ulong(long)получаю сообщение:
Error: Cannot convert oleobject in Any variable to unsignedlong(long)
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35061455
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кто это "DFAPILib" ?
гугл вообще такого не находит.
где описание того что эта ф-ция возвращает?
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35061498
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry.а кто это "DFAPILib" ?
гугл вообще такого не находит.
где описание того что эта ф-ция возвращает?
Описание в самом начале первого поста.
Более полное:

Подключиться к серверу базы данных.


HRESULT connect( BSTR serverAddress
, BSTR userName
, BSTR password
)
Параметры

serverAddress [in]

задаёт адрес сервера, к которому производится подключение
userName [in]

задаёт имя зарегистрированного на сервере пользователя
password [in]

задаёт пароль зарегистрированного на сервере пользователя

Возвращает


S_OK в случае успеха

E_DF_CONNECTING если не удалось подключиться к серверу

E_DF_CONNECTED если уже было произведено подключение к серверу

E_DF_INVALID_FORM_STG если не удалось открыть хранилище форм



Примечание

Открывает сеанс работы пользователя с сервером базы данных.





Здесь , описание кодов которые могут содержаться в типе HRESULT.

Задача: Получить значение в PB возвращаемое функцией connect.
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35061761
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
long или decimal должен подойти
ulong не подходит т.к. есть отрицательные значения
Воспользуйтесь функцией IsNull при конвертации
Но не
Код: plaintext
integer result
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35062649
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001Но не
Код: plaintext
integer result

Внимательнее плз, ConnectToNewObject возвращает именно integer.

что за oleobject возвращает myoleobject.connect пока не понятно.
Что это за ole вообще? примеры на каком-нибудь языке к нему есть?
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35062804
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрей spas2001Но не
Код: plaintext
integer result

Внимательнее плз, ConnectToNewObject возвращает именно integer.

что за oleobject возвращает myoleobject.connect пока не понятно.
Что это за ole вообще? примеры на каком-нибудь языке к нему есть?

Сорри, просмотрел
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35062978
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗоринАндрей что за oleobject возвращает myoleobject.connect пока не понятно.
Что это за ole вообще? примеры на каком-нибудь языке к нему есть?

Если не ошибаюсь на VC++.
Приложил.
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35063317
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот я смотрю на testDocumentCreation
Так там же явно же возвращаемое значение игнорируется и весь код завернут в try... catch...

1) не надо пытаться ловить HRESULT
2) вместо системного OLEObject использовать свой унаследованный от стандартного
в котором прописать обработку событий externalexception и error .
3) весь код после ConnectToNewObject обернуть в try... catch... end try
(пока для отладки можно ловить все вплоть до Throwable)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DFAPILib_OleObject myoleobject
myoleobject = CREATE DFAPILib_OleObject
result = myoleobject.ConnectToNewObject( "DFAPILib.Database")
if result<>  0  then
    MessageBox("Error", result)
end if 
try 
    myoleobject.connect("MSFO:17170","sysadmin","")
    ...
catch (oleruntimeerror e1)
    ...
catch (Throwable e2)
    ...
end try
...
Рейтинг: 0 / 0
ANY vs HRESULT
    #35065275
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока не совсем понятно.
Допустим мне нужно уведомить пользователя, что уже было произведено подключение к серверу(для конкретного пользователя, в текущий момент времени, возможно только одно подключение) .
Функция connect должна вернуть код E_DF_CONNECTED. Предлагаемый механизм, насколько я понимаю, может только отловить ошибку и обработать. В данном случае ошибки не происходит.
Должно использоваться событие externalexception?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ANY vs HRESULT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]