<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16825" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>This is my first question to the Digest, so I hope 
this is right way of&nbsp;submitting it.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I am trying to consume a Web Service. Have got it 
working ok for simple returns of XML strings, but am completely stuck on how to 
handle the return of multiple records in a TRemotable Object.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Here's the code that I think relates to 
it:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp; GetLatestTransactionsResult = 
class(TRemotable)<BR>&nbsp; private<BR>&nbsp; FUniqueId:String;<BR>&nbsp; 
FPeopleId:String;<BR>&nbsp; FSiteLoginId:string;<BR>&nbsp; 
FSiteLogoutId:string;<BR>&nbsp; FErrorCode:integer;<BR>&nbsp; 
published<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Property UniqueId: string read 
FUniqueId write FUniqueId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Property PeopleId: 
string read FPeopleId write FPeopleId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Property SiteLoginId: string read FSiteLoginId write 
FSiteLoginId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Property SiteLogoutId: string 
read FSiteLogoutId write FSiteLogoutId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Property ErrorCode: integer read FErrorCode write FErrorCode;<BR>&nbsp; 
end;<BR>&nbsp; TFieldInfoArray =&nbsp;&nbsp; array of 
GetLatestTransactionsResult;<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp; DataPortalExSoap = 
interface(IInvokable)<BR>&nbsp; 
['{94DBE733-A57C-9EBF-B5CD-167163F4ECAF}']<BR>&nbsp;&nbsp;&nbsp; function&nbsp; 
GetLatestTransactionsEx(const ID: string; const Password: string; const 
ExternalRef: string; const FindByBatchNo: string; const FindByExternalRef: 
string): string; stdcall;<BR>&nbsp; end;<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>initialization<BR>&nbsp; 
RemClassRegistry.RegisterXSClass(GetLatestTransactionsResult, 
'http://www.ezitracker.com/eziTrackerData/', 
'GetLatestTransactionsResult');<BR>&nbsp; 
RemClassRegistry.RegisterXSClass(GetLatestTransactionsResult, '', 'TFieldInfo', 
'');&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; 
RemTypeRegistry.RegisterXSInfo(TypeInfo(TFieldInfoArray), '', 
'TFieldInfoArray');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>finalization&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; 
RemClassRegistry.UnRegisterXSClass(GetLatestTransactionsResult);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; 
RemTypeRegistry.UnRegisterXSInfo(TypeInfo(TFieldInfoArray));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;</DIV>
<DIV>and then on the Form with my test buttons:</DIV>
<DIV>&nbsp;</DIV>
<DIV>procedure TFormMainForm.ButtonGetLatestTransactionsClick(Sender: 
TObject);<BR>var id:string;<BR>&nbsp;&nbsp;&nbsp; 
password:string;<BR>&nbsp;&nbsp;&nbsp; 
nonnullresponse:boolean;<BR>&nbsp;&nbsp;&nbsp; 
record_array:GetLatestTransactionsResult;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; unique_id:string;<BR>begin<BR>&nbsp; 
id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; := 'aaa';<BR>&nbsp; password := 
'bbb';<BR>&nbsp; nonnullresponse := True;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp; record_array := GetDataPortalExSoap.GetLatestTransactions(id, 
password, nonnullresponse);</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;<BR>end;<BR><BR></DIV></FONT>
<DIV><FONT face=Arial size=2>It appears to run ok, but I have no idea how to 
extract the data from record_array. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>If I try something as simple as:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>unique_id := record_array.UniqueId[1];</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I get an EAccessViolation.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Can anyone help please.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I can't seem to find any ideas on the Web, probably 
because the answer it too obvious.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thanks</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial><FONT size=2>Mark </FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2></FONT>&nbsp;</DIV></FONT></BODY></HTML>