Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ANY vs HRESULT / 11 сообщений из 11, страница 1 из 1
14.01.2008, 16:44
    #35060491
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
Имеется ф-я:
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
14.01.2008, 19:02
    #35060916
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
pb_new
Описание типа HRESULT

Этот тип представляет собой 32-битное число.
это ulong или long.
при чем тут чисто билдеровское Any к явно внешнему OLE?
...
Рейтинг: 0 / 0
15.01.2008, 08:54
    #35061444
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
В случае указания для переменной qq типа ulong(long)получаю сообщение:
Error: Cannot convert oleobject in Any variable to unsignedlong(long)
...
Рейтинг: 0 / 0
15.01.2008, 09:01
    #35061455
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
а кто это "DFAPILib" ?
гугл вообще такого не находит.
где описание того что эта ф-ция возвращает?
...
Рейтинг: 0 / 0
15.01.2008, 09:16
    #35061498
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
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
15.01.2008, 10:48
    #35061761
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
long или decimal должен подойти
ulong не подходит т.к. есть отрицательные значения
Воспользуйтесь функцией IsNull при конвертации
Но не
Код: plaintext
integer result
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.01.2008, 14:06
    #35062649
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
spas2001Но не
Код: plaintext
integer result

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

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

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

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

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

Если не ошибаюсь на VC++.
Приложил.
...
Рейтинг: 0 / 0
15.01.2008, 16:42
    #35063317
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
Ну вот я смотрю на 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
16.01.2008, 13:23
    #35065275
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ANY vs HRESULT
Пока не совсем понятно.
Допустим мне нужно уведомить пользователя, что уже было произведено подключение к серверу(для конкретного пользователя, в текущий момент времени, возможно только одно подключение) .
Функция connect должна вернуть код E_DF_CONNECTED. Предлагаемый механизм, насколько я понимаю, может только отловить ошибку и обработать. В данном случае ошибки не происходит.
Должно использоваться событие externalexception?
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ANY vs HRESULT / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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