I don't understand this line:
dbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
Could you please explain it ? thanks
dbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
DbSeek only supports searching into 1 field.
But the real problem is that data is not saved!!!. When the program is closed, they are lost!.
Antonio Linares wrote:Antonio,
I don't understand this line:
dbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
Could you please explain it ? thanks
nRec := recno() // value of bookmark in adordd returned 2.00
....
dbgoto(nRec) // value in ado_gotoid() 2 ors:BookMark := nRec you get a bookmark error!Lucas,
New version adordd -trial alternative seeks https://github.com/AHFERREIRA/adordd.git
ready : auto open, auto order, relations, record movements (go to, recno, eof, etc), locate and continue, seeks.
Search for "experimental phase" in the code to understand what I m trying to do.
Can you try relations and seeks with a medium size table (> 100.000 records) (both parent and child) on a browse to check performance?
Transactions are automatically called so please dont forget to issue dbcommit after each transaction or data wont be saved.
In this trial transacts are initiated in the first lock and ended in the first dbcommit.
Thanks
Lucas,
Is APPEND BLANK working ?
Antonio,
Please send me addfef.ch.
Thanks
Antonio,
Can you check what function is calling UR_EXISTS ?
AHF wrote:Antonio,
Please send me addfef.ch.
Thanks
AHF wrote:Antonio,
Can you check what function is calling UR_EXISTS ?
Where is such file ? I can't find it in Harbour files neither in FWH ones.
In adordd.prg there is:
aADOFunc[ UR_EXISTS ] := @ADO_EXISTS()
Antonio,
What are these function for?
/ non WorkArea functions /
Antonio,
adordd its almost finished and all "light" trials seem to be ok Not one line code changed!:D
adordd its prepared to work the dbseek with selects or :find and the final decision will depend on performance.
It might compensates the trade off between no code change and speed. We will see.
Now I'm missing information asked in my previous posts.
I'm finishing:
APPEND FROM and COPY TO to be parse into sql (INSERT INTO ... SELECT FROM.... ) but shouldn't be a problem.
I'm sure that many bugs will be found but we are getting there. ![]()
HB_FUNC( HB_DBDROP )
{
LPRDDNODE pRDDNode;
HB_USHORT uiRddID;
HB_ULONG ulConnection;
const char * szDriver;
PHB_ITEM pName;
szDriver = hb_parc( 3 );
if( ! szDriver ) /* no VIA RDD parameter, use default */
{
szDriver = hb_rddDefaultDrv( NULL );
}
ulConnection = hb_parnl( 4 );
pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDDNODE */
pName = hb_param( 1, HB_IT_STRING );
if( pRDDNode && pName )
hb_retl( SELF_DROP( pRDDNode, pName, hb_param( 2, HB_IT_STRING ),
ulConnection ) == HB_SUCCESS );
else
hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, HB_ERR_FUNCNAME );
}
HB_FUNC( HB_DBEXISTS )
{
LPRDDNODE pRDDNode;
HB_USHORT uiRddID;
HB_ULONG ulConnection;
const char * szDriver;
PHB_ITEM pName;
szDriver = hb_parc( 3 );
if( ! szDriver ) /* no VIA RDD parameter, use default */
szDriver = hb_rddDefaultDrv( NULL );
ulConnection = hb_parnl( 4 );
pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDD */
pName = hb_param( 1, HB_IT_STRING );
if( pRDDNode && pName )
hb_retl( SELF_EXISTS( pRDDNode, pName, hb_param( 2, HB_IT_STRING ),
ulConnection ) == HB_SUCCESS );
else
hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, HB_ERR_FUNCNAME );
}
HB_FUNC( HB_DBRENAME )
{
LPRDDNODE pRDDNode;
HB_USHORT uiRddID;
HB_ULONG ulConnection;
const char * szDriver;
PHB_ITEM pTable, pIndex, pNewName;
szDriver = hb_parc( 4 );
if( ! szDriver ) /* no VIA RDD parameter, use default */
szDriver = hb_rddDefaultDrv( NULL );
ulConnection = hb_parnl( 5 );
pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDDNODE */
pTable = hb_param( 1, HB_IT_STRING );
pIndex = hb_param( 2, HB_IT_STRING );
pNewName = hb_param( 3, HB_IT_STRING );
if( pIndex && ! pNewName )
{
pNewName = pIndex;
pIndex = NULL;
}
if( pRDDNode && pTable && pNewName )
hb_retl( SELF_RENAME( pRDDNode, pTable, pIndex, pNewName,
ulConnection ) == HB_SUCCESS );
else
hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, HB_ERR_FUNCNAME );
}adordd its almost finished and all "light" trials seem to be ok Not one line code changed!:D
Antonio,
Time to announce it in the Harbour devel and users lists ![]()