Hi,

Przemyslaw Czerpak wrote:
Should we ignore backward (descending) iteration flag and do forward iteration, should we do not iterate at all (current behavior), or should we give runtime error (which one?)?

Thank you very much.
Probably RTE will be better - easier to detect potential problem by
programmer.

RTE added.

If you ask about RTE code then it's a problem. IMHO we should start
to define all RTEs as #define constant and use separate error codes
for different functions/RTEs just like in Clipper.
It means that the whole core code have to be updated.

Yes. I remember this question. Your letter about error codes:
  Date: Mon, 19 Jan 2009 18:01:14 +0100
  From: Przemyslaw Czerpak <[email protected]>
  Subject: Re: [Harbour] Harbour SHA2 and SHA2-HMAC support
is on my "to answer" list, but I'm not used to Clipper error code numbers and do not have a strong opinion about it.

Using many different error code for the same general "argument error" seems a little meaningless. We are limited in error numbers also if we add more and more Harbour functions and each of it can have "argument error" error. If error code gives more information, what is wrong: indicates parameter number, or information about expected parameter type, it would be useful, but (perhaps) it is not Clipper compatible and will need to enhance error detection code.

In writing of OLE code a had these problems related to error processing:
1) should I use BASE subsystem, or create OLE;
2) it would be nice to put OLE error value (in case of RTE) into error object. But OLE error codes is 32-bit side and does not fit into OS error code. So, additional ole error variable is required to set before any RTE call;
3) that error subcode should be used for errors.


but this work also in current hbole implementation. That is array access syntax in VB? Does it work for OLE collections?

Here I cannot help you. Sorry but I do not know OLE enough.
As above. Please only remember that our old OLE code comes from xHarbour
were overloading [] in assign operation was not working correctly in the
past so the code may have some workarounds for it. I do not know if it's
fixed in current xHarbour code.

The problem is that I'm not an OLE user also :) I've left the most simple and most clean implementation here. If we will have a strong argument to extend implementation, we can do it in the future. But I guess, current one is enough to reach all ICollection functionality.


As I can see there are two things else which are missing and we should
define if we want to implement them:
1. array support
2. passing parameters by reference

I've added the basic (simple, but perhaps not full) support for arrays. It is not clear from OLE documentation for me, if we need to add checking of array items type to by the same if we pass it as array of VARIANT. Multidimensional array is passed as array of array in current implementation. I'm not sure if this is valid. I'll try to fix/change these things if I have some real life code to test it.

Passing of params by references is not yet implemented. This remains to be the only one major missing feature, though, nobody yet passed any sample for this major feature :).


We can also think about introducing yet another feature:
Function which makes explicit conversion from Harbour item given by user
to variant with type also explicitly specified by user. The result should
be returned as GC pointer item and such pointer items should be detected
and supported in OLE function calls. It should help when it's necessary
to pass some strictly defined parameters, f.e.:

   oOle:table( oleVariant( NIL, VT_EMPTY ), ;
               oleVariant( NIL, VT_NULL ), ;
               oleVariant( 123, VT_UI8 ) )
Our default conversion methods does not allow to strictly control variant
types.

Yes, it could be necessary if for example some ole object accepts VT_I2 type, but do not accept VT_I4 and we pass our HB_IT_INTEGER data via VT_I4 type by default. I do not have a real life needs for such function yet.


Regards,
Mindaugas


P.S. To Francesco Saverio Giudice: I have your MS Outlook problem in mind, but I do not have computer with Outlook. I hope to be able to find computer and test/solve your problem soon.
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to