Klic Web Service Delphi 2007

Vse kar se tiče programiranja za internet.
Odgovori
ntomaz
Prispevkov: 1
Pridružen: 11.01.2008 08:55:41

Klic Web Service Delphi 2007

Odgovor Napisal/-a ntomaz » 11.01.2008 09:42:07

Pozdravljeni!

Imam problem z podajanjem parametrov web servisu.

Problem je sledeči. Na serverju je že nameščen web service.

V Delphi 2007 sem uporabil WDSL Importer.
Dobil sem unit za ta web service, ki ga dodam v projekt.
Klic funkcij get dela, vendar imam problem z nastavljanjem parametrov.

Vrstica ki je bila večkrat omenjena, da reši problem vrednosti parametrov:

Koda: Izberi vse

  
InvRegistry.RegisterInvokeOptions(TypeInfo(TaskManagementSoap), ioDocument);
... je v generiranem unitu.

V tem unitu je tudi definirano sledeče:

Koda: Izberi vse

Variable             = class;

  Variable = class(MarshalByRefObject)
  private
    FstrVariableName: WideString;
    FstrVariableName_Specified: boolean;
    FobjVariableValue: ArrayOfAnyType;
    FobjVariableValue_Specified: boolean;
    procedure SetstrVariableName(Index: Integer; const AWideString: WideString);
    function  strVariableName_Specified(Index: Integer): boolean;
    procedure SetobjVariableValue(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType);
    function  objVariableValue_Specified(Index: Integer): boolean;
  published
    property strVariableName:  WideString      Index (IS_OPTN) read FstrVariableName write SetstrVariableName stored strVariableName_Specified;
    property objVariableValue: ArrayOfAnyType  Index (IS_OPTN) read FobjVariableValue write SetobjVariableValue stored objVariableValue_Specified;
  end;

ArrayOfVariable = array of Variable; 
anyType         =  type WideString;
ArrayOfAnyType = array of anyType;
In pridemo do problema, ko neznam nastaviti vrednosti tem variablam.
Kličem funkcijo ki mi vrne variable array in se sprehodim čez imena variabel, ter poskusim nastaviti variableValue posamezni variabli

Koda: Izberi vse

  
v: ArrayOfVariable;


v := GLIR.varList;
for I := 0 to High(v) - 1 do
      begin
      //ShowMessage('typeArray['+intToStr(I)+'] = '+v[I].strVariableName);
      if v[i].strVariableName = 'Naloga' then
      begin
        v[i].objVariableValue[0] := temp;
      end;
In naletim do problema, ko je potrebno nastaviti tem variablam vrednost tipa ArrayOfAnyType ?
V bistvu naj bi bil to nek objekt.

Lahko vam priložim še delujočo C# kodo:

Koda: Izberi vse

  
Variable[] varList = new Variable[0];
foreach (Variable var in varList)
if (var.strVariableName == "Naloga")
{
   var.objVariableValue = new object[1];
   var.objVariableValue[0] = ConfigurationManager.AppSettings["Slika"];
}
Imam delujoči primer v C#, vendar mi le-tega nikakor ne uspe spremenit v Delphi.

Najlepša hvala za odgovor.

LP.

Odgovori