Op mijn server wordt de volgende procedure aangeroepen door een client, waarbij UserIDs, Usernames en Descriptions worden doorgegeven aan de client. Vraag: wie is verantwoordelijk voor het vrijgeven de OleVariants, de client of de server. Of is dat helemaal niet nodig?
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| procedure TMijnAppServer.EnumUserInfo(out UserIDs, Usernames, Descriptions: OleVariant); var { UserInfo is een dataset (TClientDataSet) } { UserInfoUserID, UserInfoUserName en UserInfoUserDescription zijn velden (TField descendants) in de dataset } i: Integer; begin UserIDs := Null; Usernames := Null; Descriptions := Null; with UserInfo do begin UserIDs := VarArrayCreate([0, RecordCount -1], varInteger); Usernames := VarArrayCreate([0, RecordCount -1], varOleStr); Descriptions := VarArrayCreate([0, RecordCount -1], varOleStr); i := VarArrayLowBound(UserIDs, 1); First; while i <= VarArrayHighBound(UserIDs, 1) do begin if Eof then Abort; // er is iets verkeerd gegaan UserIDs[i] := UserInfoUserID.Value; Usernames[i] := UserInfoUserName.Value; Descriptions[i] := UserInfoUserDescription.Value; Inc(i); Next; end; end; end; |
Een goede grap mag vrienden kosten.