powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / тип данных sword.
24 сообщений из 24, страница 1 из 1
тип данных sword.
    #36451035
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sword OCIClientVersion ( sword *major_version,
sword *minor_version,
sword *update_num,
sword *patch_num,
sword *port_update_num );
А какой тип данных аналог для "sword" в PB ?
...
Рейтинг: 0 / 0
тип данных sword.
    #36451109
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это меч
Вообще-то это не стандартный тип, и искать его определение нужно где-то там, где и OCIClientVersion объявлено. В качестве гипотезы sword расшифровывается как short word, что по традиции для платформы Intel должно быть равно 1 байту (хотя для 32-битных процессоров на самом деле 2 байта).
...
Рейтинг: 0 / 0
тип данных sword.
    #36451136
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функция входит в OCI.DLL.
Пробовал в PB обявить аргументы как int, uint, char, ulong, string.
Ругается на различие типов в прототипе и при вызове.
Куда теперь копать.
Вообще-то задача стоит так: определить версию ORACLE-клиента и поместить ее в sys_context.
...
Рейтинг: 0 / 0
тип данных sword.
    #36451189
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проще Тынц
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36451278
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altero пишет:

> Функция входит в OCI.DLL.
> Пробовал в PB обявить аргументы как int, uint, char, ulong, string.

Надеюсь, понятно, что аргументы нужно передавать по ссылке?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
тип данных sword.
    #36451598
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim2000,

FUNCTION char OCIClientVersion( ref char major_version, ref char minor_version, ref char update_num, ref char patch_num, ref char port_update_num ) LIBRARY "OCI.DLL"
...
Рейтинг: 0 / 0
тип данных sword.
    #36451603
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001,

Как вариант ДА . А если на клиенте кроме OCI-mini ничего нет. sqlplus в том числе.
...
Рейтинг: 0 / 0
тип данных sword.
    #36452017
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у OCI считайте version
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36452068
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001,

FUNCTION char OCIClientVersion( ref char major_version, ref char minor_version, ref char update_num, ref char patch_num, ref char port_update_num ) LIBRARY "OCI.DLL"

несоответствие типов.....
...
Рейтинг: 0 / 0
тип данных sword.
    #36452701
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто версию файла опросите
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36453129
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alterospas2001,

FUNCTION char OCIClientVersion( ref char major_version, ref char minor_version, ref char update_num, ref char patch_num, ref char port_update_num ) LIBRARY "OCI.DLL"

несоответствие типов.....

1) Если вы объявили ф-ю fn(ref char arg), то передать туда вы можете только переменную типа char.
При попытке передать что-то другое будет ошибка компиляции о несоответствии типов

2) Тип sword в OCI объявлен как signed int (32-битное знаковое целое для платформы x86 в которой работает PB), и эквивалентен типу long в PB.
...
Рейтинг: 0 / 0
тип данных sword.
    #36453147
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001Просто версию файла опросите

Точно.
По слухам OCIClientVersion есть только начиная с 10 оракла.
...
Рейтинг: 0 / 0
тип данных sword.
    #36453165
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вместо sqlplus можно пользовать tnsping:
http://decipherinfosys.wordpress.com/2007/02/10/checking-for-oracle-client-version-on-windows/

если sword описан как signed int , то согласен с Анатолием,
вместо ref char надо пользовать ref long
...
Рейтинг: 0 / 0
тип данных sword.
    #36453229
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Молодежь со старыми версиями не работала:)
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467031
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry..,

// вместо ref char надо пользовать ref long
Пробовал.. Не подходит.
...
Рейтинг: 0 / 0
тип данных sword.
    #36467033
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001,

Молодеж... может что-нибудь по существу сказать?
...
Рейтинг: 0 / 0
тип данных sword.
    #36467084
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если правой кнопочкой по файлу щелкнуть можно посмотреть дополнительные параметры
Считать FileVersionInfo через структуру думаю особой сложности не составит
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467090
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда с реестром работал вообще-то использовал blob для конвертации word-параметров, можно покопать в этом направлении, если нет придется написать обертку на C++
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467109
altero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001,

Sorry. Прошу без обид.
Надо просто из API-клиента узнать - какой версии клиент-Oracle у него.
Вроде бы самый подходящий - Вызов OciClientVersion().
Проблема с ref типами.
...
Рейтинг: 0 / 0
тип данных sword.
    #36467129
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие обиды, это-то тут причем
Просто сейчас не с Oracle работаю, даже глянуть негде
Поэтому и советую по памяти. Он же заточен под Linux, поэтому обязательно где-то лежит файлик с версией. В programm files\oracle должен лежать инвентори(он туда начиная с 8-ки по-любому пишет), если через FileVerionInfo не прокатывает, можно посмотреть там
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467133
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через OCI тоже можно, если обработать исключения
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467137
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот про это говорил
Тынц
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
тип данных sword.
    #36467140
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выкладывай сюда обьявление ф-ции в билдере
как ты ее вызываешь
и что за ошибка при вызове
...
Рейтинг: 0 / 0
тип данных sword.
    #36467277
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржаки, че-то я сразу не обратил внимания.
OCIClientVersion это ф-я с типом передачи аргументов CDECL, т.е. вызываемая ф-я не очишает аргументы из стека.
А PowerBuilder поддерживает только STDCALL, т.е. с очисткой стека.
В случае если попытаться вызвать таки ф-ю типа CDECL, то из-за отсутствия сдвига вершины стека PowerBuilderу кажется, что вызывали ф-ю без аргументов, хотя в декларации указаны аргументы. В этой ситуации PB выдает ошибку в runtime.

Встроенными средствами PB вашу ф-ю нельзя вызвать.
У меня есть библиотека для вызова таких функций из PB, но она платная.
Проще воспользоваться советом выше и определить версию DLL используя GetFileVersionInfo. Пример
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / тип данных sword.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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