Para plataformas de 32 y 64 bits (Windows incluyendo el 11, Linux varios sabores, iOS)
Además con pruebas en el Mod_Harbour.
Los compiladores de C usados son
Ms VisualC, MinGW, Bcc y CLan (todos ellos de 32 y 64 bits)
Para Linux solo disponible GCC y CLang de 64 bits
Y para iOS solo MinGW 64 bits
Especialmente para el Mod_Harbour hay creados varios metodos de recuperación de datos, mirad este ejemplo:
- Code: Select all Expand view
//------------------------------------------------------------------------------
#include "hdo.ch"
//------------------------------------------------------------------------------
// Aqui esta definida el RDL y los parametro de conexion del ejemplo:
#include "ejforall.ch"
//------------------------------------------------------------------------------
procedure main
local oCon, oRS, oDS, oStmt
local cQry := "SELECT * FROM test WHERE first like 'Homer%'"
oCon := THDO():new( _DBMS )
// A nivel de base de datos
oCon:setAttribute( HDO_ATTR_STR_TRIM, .t. ) // Quita espacios
oCon:connect( _DB, _CONN )
oDS := TMemList():new( oCon:queryDirect( cQry, FETCH_ARRAY ) )
simpleBrowse( oDS, "Usando: MemList queryDirect" )
oDS:free()
oDS := THashList():new( oCon:queryDirect( cQry, FETCH_HASH ) )
simpleBrowse( oDS, "Usando: HashList queryDirect" )
oDS:free()
oDS := TMemList():new( oCon:execQuery( cQry, FETCH_ARRAY ) )
simpleBrowse( oDS, "Usando: MemList execQuery" )
oDS:free()
oDS := THashList():new( oCon:execQuery( cQry, FETCH_HASH ) )
simpleBrowse( oDS, "Usando: HashList execQuery" )
oDS:free()
oStmt := oCon:query( cQry )
oDS := TMemList():new( oStmt:fetchAllArray() )
simpleBrowse( oDS, "Usando: MemList", oStmt:listColNames() )
oDS:free()
oDS := THashList():new( oStmt:fetchAllHash() )
simpleBrowse( oDS, "Usando: HashList" )
oDS:free()
oStmt:free()
oRS := oCon:rowSet( cQry )
oRS:setAttribute( STMT_ATTR_STR_PAD, .t. ) // Rellena espacios
oRS:load()
simpleBrowse( oRS, "Usando: RowSet" )
oRS:free()
oCon:free()
return
//------------------------------------------------------------------------------
Salu2