Re: Migrating to Harbour
Posted: Wed Jan 07, 2015 10:22 pm
Rick,
it would require too much work, sorry.
EMG
it would require too much work, sorry.
EMG
www.FiveTechSoft.com
https://forums.fivetechsupport.com/
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=29806
Antonio Linares wrote:Do you get an error with Harbour on this code ?
oSheet:Cells( 1, 1 ):Value = CToD( "" )
Which error ?
Error WINOLE/1006 (0x800A03EC): _VALUE (DOS Error -2147352567)
Called from TOLEAUTO:_VALUE(0)
Called from MAIN(11)
Antonio Linares wrote:What about using TRY ... CATCH ... END ?
James Bott wrote:oSheet:Cells( 1, 1 ):Value = CToD( "" )
Isn't that a direct call to the Excel API? If so, it would seem that it is an Excel issue not a Harbour issue.
James Bott wrote:But then, I don't understand why it would work with xHarbour unless the pre-processor is changing the code.
James Bott wrote:Any chance that you are comparing two different versions of Excel--one using Harbour and another with xHarbour?
Anyway, does it make sense that we can assign all empty types except date? These all work:
oSheet:Cells( 1, 1 ):Value = ""
oSheet:Cells( 1, 1 ):Value = 0
oSheet:Cells( 1, 1 ):Value = .F.
No, it's not the preprocessor, it's internal xHarbour OLE management that fixes the problem. Harbour should do the same, in my opinion.
Its just a workaround, but what do you think if you use a modified function CToD() ?
Antonio Linares wrote:Its just a workaround, but what do you think if you use a modified function CToD() ?
If you agree on that, then I will help you to build it
oSheet:Cells( 1, 1 ):Value = FIELD -> birthdate
James Bott wrote:Anyway, does it make sense that we can assign all empty types except date? These all work:
oSheet:Cells( 1, 1 ):Value = ""
oSheet:Cells( 1, 1 ):Value = 0
oSheet:Cells( 1, 1 ):Value = .F.
Actually 0 and .f. are valid data, are they not?
James Bott wrote:Are you saying they are converted to nil before putting the data into Excel?No, it's not the preprocessor, it's internal xHarbour OLE management that fixes the problem. Harbour should do the same, in my opinion.
What are you basing this on? I know that I have used third-party libraries (that Harbour does not have any knowledge of) to pass data in a similar manner. So, at least in this case, there is no processing by Harbour, unless maybe it is generic. Do you know for a fact that this is happening or are you making an assumption?
case HB_IT_DATE:
if( pItem->item.asDate.value == 0 )
{
PHB_V_VT( pVariant ) = VT_NULL;
}
nageswaragunupudi wrote:Friends
We are all beating around the bush.
Let us not think that EMG does not know workarounds or that he is not capable of finding on his own. No point in keep advising him to implement work arounds.
The fact is that this is bug in Harbour well known for a long time. This is a problem not only for excel but also for ADO.
His point is that he has large existing code and it is extremely difficult to implement work arounds everywhere. It is true. Imagine that any work around is to be implemented for every assignment.
He is speaking not only on his own behalf. Rather on behalf of many programmers who want to migrate.