Delphi SOAP ArrayOfString Problemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

Delphi SOAP ArrayOfString Problemi

Mesaj gönderen mikser »

Herkese selamlar,
WebServis konusunda Delphi XE3 de yazmaya çalıştığım bir uygulama var. Delphi bilgim fazla değil. ( C++ builder ile uygulama geliştiriyorum.)

WebServis.pas dosyasında ki tanımlar şu sekilde;

Kod: Tümünü seç

......
  GetUserInfoInput     = class;
......
  ArrayOfString = array of string; 
......
  GetUserInfoInput = class(TRemotable)
  private
    FSearchKeys: ArrayOfString;
........
   function  GetUserInformation(const theSearchRequest: GetUserInfoInput): ResultGetUserInfo; stdcall;
.....

Delphi tarafında GetUserInformation fonksiyonunu çağırma işlemi:

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
rgui : ResultGetUserInfo;
gui  : GetUserInfoInput;

send: ArrayOfString; // test için.
begin
 gui:= GetUserInfoInput.Create;
 rgui:= ResultGetUserInfo.Create;

 SetLength(send, 2);
 send[0] := 'test '; 
 send[1] := 'test11 ';
// yukarıdaki kod hatasız çalışıyor.

// Aşağıdaki kod hata veriyor.
 SetLength( gui.SearchKeys, 1); 
 gui.SearchKeys[0] := 'ad=deneme';

 rgui := (HTTPRIO2 as ServiceSoap).GetUserInformation (gui);

 MemoSonuc.Clear;
 MemoSonuc.Lines.Add('Ad : ' + rgui.FieldNames.FirstName);
 MemoSonuc.Lines.Add('Ad : ' + rgui.FieldNames.LastName );

end;
"send" değişkeni ArrayOfString tipinde olmasına rağmen hata vermeden çalışıyor,
ancak "GetUserInfoInput" sınıfının elemanı olan "SearchKeys" de tıpkı send değişkeni gibi ArrayOfString olmasına rağmen hata veriyor.

Konu ile ilgili yardımcı olabileceklere şimdiden teşekkürler...
Biliyorsan konuş...
Konuş da feyiz alsınlar
Bilmiyorsan tut dilini
Seni bir adam sansınlar
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Delphi SOAP ArrayOfString Problemi

Mesaj gönderen SimaWB »

Maalesef SearchKeys'i GetUserInfoInput classı içerisinde ölçeklendirmekten başka şansınız yok :(
GetUserInfoInput'a SetLength benzeri bir public fonksiyon tanımlayın. Bu fonksiyon içerisinde SearchKeys'in boyutunu değiştirin.
There's no place like 127.0.0.1
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Delphi SOAP ArrayOfString Problemi

Mesaj gönderen SimaWB »

Pardon, şöyle bir çözümü daha var:

Kod: Tümünü seç

var
  tmp: ArrayOfString;
begin
  SetLength(tmp, 2);
  gui.SearchKeys := tmp;
There's no place like 127.0.0.1
Kullanıcı avatarı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

Re: Delphi SOAP ArrayOfString Problemi

Mesaj gönderen mikser »

simaWb teşekkürler.

Kod: Tümünü seç

var
  tmp: ArrayOfString;
begin
  SetLength(tmp, 2);
  gui.SearchKeys := tmp;
söylediğin bu yöntemle problem çözüldü. Kod hata vermeden çalışıyor.

tekrar teşekkürler.
Biliyorsan konuş...
Konuş da feyiz alsınlar
Bilmiyorsan tut dilini
Seni bir adam sansınlar
Cevapla