Page 6 of 70

Re: ADO RDD xHarbour

PostPosted: Fri Mar 20, 2015 3:46 pm
by AHF
Antonio,

What func calls the ADO_ORDDESTROY ?

Re: ADO RDD xHarbour

PostPosted: Fri Mar 20, 2015 4:18 pm
by Antonio Linares
Antonio,

Place an error in ADO_ORDDESTROY() and you will see the calls stack list

in example, write:
x++

it will error and you will see what function calls it

Re: ADO RDD xHarbour

PostPosted: Fri Mar 20, 2015 6:44 pm
by AHF
Antonio,

Where is information about the controling index in ADO RDD ?

Re: ADO RDD xHarbour

PostPosted: Fri Mar 20, 2015 9:39 pm
by Antonio Linares
The controlling index is set in the ADO recordset:

oRecordSet:Index := aOrderInfo[ UR_ORI_BAG ]

Re: ADO RDD xHarbour

PostPosted: Sat Mar 21, 2015 12:47 pm
by AHF
Antonio,

I needed an VAR to save the controling index.
All indexes are "virtual" they really dont exist as files in ADORDD.
The indexes are SELECTs
Its solved. :D

Now I need to know RDD function to DBRLOCKLIST()

What is aLockInfo[ UR_LI_METHOD ] := DBLM_MULTIPLE ?

Re: ADO RDD xHarbour

PostPosted: Sat Mar 21, 2015 9:20 pm
by Antonio Linares
Antonio,

Very good, you are progressing :-)

have a look at this:
http://www.ousob.com/ng/53tecref/ng42f2a.php

Re: ADO RDD xHarbour

PostPosted: Sat Mar 21, 2015 10:45 pm
by AHF
Antonio,

Ok got it!

How can I have DBRLOCKLIST() to work?

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 7:13 am
by Antonio Linares
Antonio,

See how it is implemented in Harbour:

Code: Select all  Expand view
HB_FUNC( DBRLOCKLIST )
{
   AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer();

   if( pArea )
   {
      PHB_ITEM pList = hb_itemArrayNew( 0 );
      SELF_INFO( pArea, DBI_GETLOCKARRAY, pList );
      hb_itemReturnRelease( pList );
   }
   else
      hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME );

}

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 7:55 am
by AHF
Antonio,

Sorry didnt catch it.

I'm not familiar with harbour C ext.

Where can I keep the locklist array updated in adordd everytime ADO_LOCK and ADO_UNLOCK are called?

Locks dont really exist in the files its only for record position information.

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 8:12 am
by Antonio Linares
Antonio,

In that C code an array is created and filled with an array (DBI_GETLOCKARRAY)

The question here is: Does it have sense to talk about this in ADO ? Do we just return an empty array ?

Are we going to need those locks positions ? I guess no

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 8:34 am
by AHF
Antonio,

Its absolutly necessary to keep the locklist array.

In transactions we lock and append all necessary records and then we loop trough the locklist with dbgoto to make all replaces. If a lock fails the transaction fails.

Altough with ADO never fails as real locks dont matter we still need to have it filled with bookmarks to return to each record later.

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 8:47 am
by Antonio Linares
Antonio,

ok, you can save them using bookmarks, yes

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 8:53 am
by AHF
Antonio,

I need your support here because I still dont know how to do it.

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 9:19 am
by Antonio Linares
Antonio,

Please post your most recent adordd.prg file and I review it, thanks

Re: ADO RDD xHarbour

PostPosted: Sun Mar 22, 2015 9:40 am
by AHF
Antonio,

Sent to your email.