ADO RDD xHarbour
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
Antonio,
Your code looks fine. What is missing ?
If you don't mind I am going to share your version so other users may try it too, thanks
https://bitbucket.org/fivetech/fivewin- ... adordd.prg
Your code looks fine. What is missing ?
If you don't mind I am going to share your version so other users may try it too, thanks
https://bitbucket.org/fivetech/fivewin- ... adordd.prg
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
Antonio,
Please place a MsgInfo() in function ADO_ORDINFO() and check if it is shown when you call to Dbrlocklist()
Please place a MsgInfo() in function ADO_ORDINFO() and check if it is shown when you call to Dbrlocklist()
Re: ADO RDD xHarbour
Antonio,
I did that already.
Dbrlocklist doesnt call ado_ordinfo.
I did that already.
Dbrlocklist doesnt call ado_ordinfo.
Regards
Antonio H Ferreira
Antonio H Ferreira
Re: ADO RDD xHarbour
Antonio,
Dbrlocklist is a area/table related information and not index.
I think drblocklist is calling dbinfo with the corresponding #define.
When we open a recorset we load to UR_SUPER_OPEN( nWA, aOpenInfo ) all openinfo.
Can we do something of the kind with locks and unlocks to keep locklist always updated?
Dbrlocklist is a area/table related information and not index.
I think drblocklist is calling dbinfo with the corresponding #define.
When we open a recorset we load to UR_SUPER_OPEN( nWA, aOpenInfo ) all openinfo.
Can we do something of the kind with locks and unlocks to keep locklist always updated?
Regards
Antonio H Ferreira
Antonio H Ferreira
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
Antonio,
Yes, you are right, it is DbInfo()
What we are not going to lock any records, so what do you need that for ?
Yes, you are right, it is DbInfo()
What we are not going to lock any records, so what do you need that for ?
Re: ADO RDD xHarbour
AHF wrote: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.
Regards
Antonio H Ferreira
Antonio H Ferreira
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
Antonio,
So the array that you have to return is aWdata[ WA_LOCKLIST ]
So the array that you have to return is aWdata[ WA_LOCKLIST ]
Re: ADO RDD xHarbour
Antonio,
Yes thats the array I created for that porpose and its already updated by ado_lock and ado_unlock.
Yes thats the array I created for that porpose and its already updated by ado_lock and ado_unlock.
Regards
Antonio H Ferreira
Antonio H Ferreira
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
Can't you return it from DbInfo() ?
Re: ADO RDD xHarbour
Antonio,
No. The problem is that I must pass somewhere the locklist array that I build but dont know where and how.
I dont have any other rdd.prg source to check it out.
No. The problem is that I must pass somewhere the locklist array that I build but dont know where and how.
I dont have any other rdd.prg source to check it out.
Regards
Antonio H Ferreira
Antonio H Ferreira
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: ADO RDD xHarbour
See the source code for dbinfo():
Code: Select all
HB_FUNC( DBINFO )
{
AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer();
if( pArea )
{
PHB_ITEM pIndex;
pIndex = hb_param( 1, HB_IT_NUMERIC );
if( pIndex )
{
PHB_ITEM pInfo = hb_itemNew( hb_param( 2, HB_IT_ANY ) );
SELF_INFO( pArea, ( HB_USHORT ) hb_itemGetNI( pIndex ), pInfo );
hb_itemReturnRelease( pInfo );
}
else
hb_errRT_DBCMD( EG_ARG, EDBCMD_DBINFOBADPARAMETER, NULL, HB_ERR_FUNCNAME );
}
else
hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME );
}
Re: ADO RDD xHarbour
Antonio,
I dont understand it.
As I said before I dont know nothing about rdd specs and the way of working.
I define #define WA_LOCKLIST 22
Cant we do with dbrlocklist something like
aADOFunc[ UR_LOCK ] := (@ADO_LOCK())
Then I would have acess to my locklist array.
I dont understand it.
As I said before I dont know nothing about rdd specs and the way of working.
I define #define WA_LOCKLIST 22
Cant we do with dbrlocklist something like
aADOFunc[ UR_LOCK ] := (@ADO_LOCK())
Then I would have acess to my locklist array.
Regards
Antonio H Ferreira
Antonio H Ferreira
Re: ADO RDD xHarbour
Antonio,
What this needed for:
What this needed for:
Code: Select all
STATIC FUNCTION ADO_RAWLOCK( nWA, nAction, nRecNo )
// LOCAL oRecordSet := USRRDD_AREADATA( nWA )[ WA_RECORDSET ]
/* TODO */
HB_SYMBOL_UNUSED( nRecNo )
HB_SYMBOL_UNUSED( nWA )
HB_SYMBOL_UNUSED( nAction )
RETURN HB_SUCCESS
Regards
Antonio H Ferreira
Antonio H Ferreira
Re: ADO RDD xHarbour
Antonio,
FieldLen and FieldSize return nil
I've tested in the adorrd before UR_SUPER_ADDFIELD( nWA, aField ) and the values are correct.
What can we do?
FieldLen and FieldSize return nil
I've tested in the adorrd before UR_SUPER_ADDFIELD( nWA, aField ) and the values are correct.
What can we do?
Regards
Antonio H Ferreira
Antonio H Ferreira