I don't understand this line:
Could you please explain it ? thanksdbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
Could you please explain it ? thanksdbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
Can you post the code example and index used? Here seeks more 1 field.DbSeek only supports searching into 1 field.
To us the most important and difficult features are:But the real problem is that data is not saved!!!. When the program is closed, they are lost!.
Example:Antonio Linares wrote:Antonio,
I don't understand this line:
Could you please explain it ? thanksdbgoto(nrecno) = adordd - oSet:Bookmark := nrecno
Code: Select all
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!
Where is such file ? I can't find it in Harbour files neither in FWH ones.AHF wrote:Antonio,
Please send me addfef.ch.
Thanks
In adordd.prg there is:AHF wrote:Antonio,
Can you check what function is calling UR_EXISTS ?
Its mentioned in adofuncs.prgWhere is such file ? I can't find it in Harbour files neither in FWH ones.
I meant what is the function calling UR_EXISTS ?In adordd.prg there is:
aADOFunc[ UR_EXISTS ] := @ADO_EXISTS()
Code: Select all
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 );
}
Excellent!adordd its almost finished and all "light" trials seem to be ok Not one line code changed!:D