Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Аналог TPLSQLTable в ODAC / 7 сообщений из 7, страница 1 из 1
10.08.2018, 11:05
    #39685928
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
Добрый день, друзья!

Решили сменить компоненты Direct Oracle Access (DOA) на ODAC. Плюсов много, но попался один затык.
В DOA-шных компонентах активно юзали класс TPLSQLTable, но такого аналога я не нашел в ODAC-овских компонентах.
Или я не достаточно хорошо искал? Если кто сталкивался с такой проблемой, подскажите где искать.
Заранее благодарен
...
Рейтинг: 0 / 0
10.08.2018, 11:27
    #39685946
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
Леонов ЮрийДобрый день, друзья!

Решили сменить компоненты Direct Oracle Access (DOA) на ODAC. Плюсов много, но попался один затык.
В DOA-шных компонентах активно юзали класс TPLSQLTable, но такого аналога я не нашел в ODAC-овских компонентах.
Или я не достаточно хорошо искал? Если кто сталкивался с такой проблемой, подскажите где искать.
Заранее благодарен

Не знаю, зачем он используется, но описание этого класса довольно простое.
Можешь его выдернуть к себе и использовать дальше.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  TPLSQLTable = class(TObject)
  private
    FValues: Variant;
    FTableSize: Integer;
    FStringSize: Integer;
    function  GetValue(Index: Integer): Variant;
    procedure SetValue(Index: Integer; const Value: Variant);
    function  GetCount: Integer;
    procedure SetCount(Value: Integer);
    procedure SetTableSize(Value: Integer);
    function  GetAsString: string;
    procedure SetAsString(const Value: string);
  public
    constructor Create(ATableSize, AStringSize: Integer);
    procedure Assign(Source: TPLSQLTable);
    property  Values[Index: Integer]: Variant read GetValue write SetValue; default;
    property  TableSize: Integer read FTableSize write SetTableSize;
    property  StringSize: Integer read FStringSize write FStringSize;
    property  Count: Integer read GetCount write SetCount;
    property  AsString: string read GetAsString write SetAsString;
    property  ValueArray: Variant read FValues write FValues;
  end;
...
Рейтинг: 0 / 0
10.08.2018, 11:39
    #39685959
devart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
Среди компонентов, входящих в состав ODAC, отсутствует прямой аналог TPLSQLTable. Однако Вы можете работать с коллекциями PL/SQL следующим образом : https://www.devart.com/odac/docs/work_plsqltables.htm
...
Рейтинг: 0 / 0
10.08.2018, 12:29
    #39686006
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
devart,

То есть, чтобы передать таблицу нужно каждый элемент списка таким образом преобразовать?
А как получать таблицу из процедуры?
DataType может только String быть?
...
Рейтинг: 0 / 0
10.08.2018, 12:30
    #39686008
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
defecator,

сам класс не проблема дернуть, проблема в дальнейшем его использовании
...
Рейтинг: 0 / 0
10.08.2018, 13:10
    #39686046
devart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
Леонов ЮрийТо есть, чтобы передать таблицу нужно каждый элемент списка таким образом преобразовать?

PLSQLTable - это просто массив значений. мы не стали для этого создавать отдельный компонент. если у вас много кода завязано на TPLSQLTable, то как писали выше вы можете создать свой класс с таким названием и научить его сериализоваться и десериализоваться себя в/из параметра.
Леонов ЮрийА как получать таблицу из процедуры?

объявить параметр как ptOutput и после выполнения процедуры вычитать из него массив значений.
Леонов ЮрийDataType может только String быть?
нет, любого типа.
...
Рейтинг: 0 / 0
13.08.2018, 09:04
    #39686681
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог TPLSQLTable в ODAC
devart, спасибо за информацию))
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Аналог TPLSQLTable в ODAC / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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