метод GrantRightsForObjects

Автор chip, 10.06.15, 09:43:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

chip

Может кто-нибудь привести пример использования метода GrantRightsForObjects в Delphi?
Попробовал таким образом:
procedure TDM1.AddRight(ArrVariant : TArrVar);
var
  Arr : Array of Array of VAriant;
  Arr2 : TArrVar;
begin
  CDS1.Data :=
      a.AppServer.GrantRightsForObjects(Arr,inRetCode,stErrMsg); 
  CDS1.Data :=
      a.AppServer.GrantRightsForObjects(Arr2,inRetCode,stErrMsg);
end;

Получил : [Error] DModule1.pas(145): Type not allowed in Variant Dispatch call

Chaa

Первый параметр функции это SAFEARRAY из COM. В Delphi нужно использовать VarArray* функции. Должно быть примерно так:

var
    LObjCount: Integer;
    LArr: OleVariant;
begin
    LArr := VarArrayCreate([0, LObjCount - 1, 0, 3], varVariant);
    for i := 0 to LObjCount - 1 do
    begin
        LArr[i, 0] := objId;
        LArr[i, 1] := userName;
        LArr[i, 2] := access;
        LArr[i, 3] := finishTime;
    end;
    CDS1.Data :=
        a.AppServer.GrantRightsForObjects(LArr,inRetCode,stErrMsg);
end;
+ Благодарностей: 1

LorD_LeLiK

Для себя хотелось бы уточнить, ти п и что нужно "запихнуть" в переменную а в коде :
Цитировать  CDS1.Data :=
      a.AppServer.GrantRightsForObjects(Arr,inRetCode,stErrMsg);

Chaa

var
  a: TDCOMConnection;
  CDS1: TClientDataSet;

В API Лоцмана некоторые функции возвращают пакеты данных TClientDataSet.
В API плагина ПГС функции возвращают уже готовый IPluginDataSet, это обертка над TClientDataSet.
Вместо a там IPluginAppMain и IPluginAppWorkFlow.
+ Благодарностей: 1