FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Antonio - WORKAREA con data de usuario
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Antonio - WORKAREA con data de usuario
Posted: Tue Mar 31, 2015 04:19 PM
Antonio, tu que tienes mas conocimiento de la api de harbour y los rdd,
existe alguna data en la estructura de las Workarea que pueda ser usado por el usuario?

algo asi como los tag de las clases de fivewin, es mas que todo para asociar una cadena de una consulta sql asociada a la tabla (sqlmix)
algo asi como:
Code (fw): Select all Collapse
cQuery := "SELECT * FROM country"

? dbUseArea( .T., , cQuery, "country" )

?MYALIAS->( dbinfo( RDD_USR_TAG, cQuery ) ) //retorne ""SELECT * FROM country""
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Antonio - WORKAREA con data de usuario
Posted: Tue Mar 31, 2015 04:59 PM

ups, post en foro equivocado, era en el de español :-)

sorry

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Antonio - WORKAREA con data de usuario
Posted: Tue Mar 31, 2015 05:13 PM

Carlos,

No me suena que haya nada. Acabo de revisar la estructura de la workarea en hbapirdd.h y solo he encontrado esto:

void * lpFieldExtents; / Void ptr for additional field properties /

no lo he buscado en los fuentes para ver si se usa y cómo.

Pero mientras hacia eso he caido en la cuenta de que podrias usar un simple campo memo para ir almacenando los queries, no ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Antonio - WORKAREA con data de usuario
Posted: Wed Apr 01, 2015 09:03 AM
Tocayo,

En el RDD SQLBase, y por lo tanto en el SQLMIX, tienes un elemento de la estructura donde se almacena la cadena de la query:

Code (fw): Select all Collapse
typedef struct _SQLBASEAREA
{
   AREA area;

   /*
    *  SQLBASE additions to the workarea structure
    */

   LPDBRELINFO lpdbPendingRel;

   HB_ULONG ulConnection;
   struct _SQLDDCONNECTION * pConnection;
   struct _SDDNODE *         pSDD;

   char * szQuery;                           /* SQL query */    <------------------ ESTO CREO QUE ES LO QUE QUIERES

   HB_ULONG ulRecNo;                         /* Current record number */
   HB_ULONG ulRecCount;                      /* Total records */
   HB_ULONG ulRecMax;                        /* Size of pRow, pRowFlags buffer */

   void **   pRow;                           /* array of native pointers or cached PHB_ITEM */
   HB_BYTE * pRowFlags;

   void *  pRecord;                          /* current record */
   HB_BYTE bRecordFlags;

   HB_BOOL fFetched;
   HB_BOOL fPositioned;
   HB_BOOL fAppend;
   HB_BOOL fRecordChanged;

   void * pSDDData;                          /* SDD specific data */
} SQLBASEAREA, * SQLBASEAREAP;


Y para obtener la cadena se podría consultar con dbinfo

Code (fw): Select all Collapse
static HB_ERRCODE sqlbaseInfo( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem )
{
   switch( uiIndex )
   {
      case DBI_QUERY:
         hb_itemPutC( pItem, pArea->szQuery );
         break;

      default:
         return SUPER_INFO( &pArea->area, uiIndex, pItem );
   }

   return HB_SUCCESS;
}


en hbrddsql.ch esta definida la constante
Code (fw): Select all Collapse
#define DBI_QUERY             1001

? dBInfo( DBI_QUERY ) -> cQuery


Ojo, no lo he probado, solo recordaba haberlo leído cuando estaba mirando lo de los RDDs con SQL. Creo que es lo que estas buscando o esta cerca, revisa el codigo fuente de las contribs.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Antonio - WORKAREA con data de usuario
Posted: Wed Apr 01, 2015 02:00 PM

Carlos lo pruebo hoy y les comento, :-)

salu2
carlos vargas

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion