HDO una imagen vale más que...
Posted: Mon May 04, 2015 8:33 pm
A ver si alguien adivina que es esto?
Y un ejemplo en PRG
Y un ejemplo en PRG
- Code: Select all Expand view
/*******************************************************************************
* Proyecto: Harbour Data Objects hdo
* Fichero: demo01.prg
* Descripcion: Demo con el RDL SQLite
* Autor: Manu Exposito
* Fecha: 04/05/2015
******************************************************************************/
//------------------------------------------------------------------------------
#include "hdo.ch"
//------------------------------------------------------------------------------
// Funcion principal
procedure main()
local i := 0
local oCur, aCur, e
/**/
local oHdo
local cCrea := "CREATE TABLE socio " + ;
"( clavesocio INTEGER PRIMARY KEY," + ;
"socio TEXT," + ;
"direccion TEXT," + ;
"telefono TEXT," + ;
"categoria TEXT );"
local cIns := "INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (1, 'Paula', 'California, 34', '955667788', 'de primera' ); " + ;
"INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (2, 'Manuel', 'Formentera, 44', '955127756', 'de segunda' ); " + ;
"INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (3, 'Carmen', 'Tinto, 33', '932667778', 'de quinta' ); " + ;
"INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (4, 'Isabel', 'El Cano, 4', '923667745', 'de segunda' ); " + ;
"INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (5, 'Adrian', 'Octavio Paz, 2', '955333788', 'de primera' ); " + ;
"INSERT INTO socio ( clavesocio, socio, direccion, telefono, categoria ) " + ;
"VALUES (6, 'Lorenzo', 'Alvareda, 9', '955222288', 'de cuarta' ); "
cls
oHdo := THDo():new( "SQLITE" )
muestra( oHdo:getObjDriver():listDrivers(), "Drivers" )
// Todas las sentencias que se envian al servidor deberian ir envueltas
// en un TRY - CATCH
TRY
oHdo:connect( "agenda.db" )
msg( oHdo:getHost() + ";" + oHdo:getDbName() + ";" + ;
oHdo:getUser() + ";" + oHdo:getPasswd() + ";" + ;
oHdo:getDrvName(), "Datos conexion" )
muestra( oHdo:driverInfo(), "Datos del driver" )
TRY
oHdo:exec( cCrea )
CATCH e
muestra( e:SubSystem +";" + padl( e:SubCode, 4 ) + ";" + ;
e:Operation + ";" + e:Description, "Error desde Harbour" )
muestra( oHdo:errorInfo(), "Error desde rdl:errorInfo()" )
END
TRY
if oHdo:inTransaction()
msg( "1 Esta en una trasaccion" )
else
msg( "1 No esta en una trasaccion" )
endif
oHdo:beginTransaction()
if oHdo:inTransaction()
msg( "2 Esta en una trasaccion" )
else
msg( "2 No esta en una trasaccion" )
endif
i := oHdo:exec( cIns )
oHdo:commit()
CATCH
muestra( oHdo:errorInfo(), "Datos del error" )
oHdo:rollBack()
END
msg( AllTrim( Str( i ) ) + " - " + AllTrim( Str( oHdo:lastInsertId() ) ) , "Columnas afectadas y rowid" )
TRY
oHdo:exec( "SELECT * FROM socio WHERE clavesocioX = 1;" )
muestra( oHdo:errorInfo(), "Datos del error" )
CATCH
muestra( oHdo:errorInfo(), "Datos del error" )
END
msg( oHdo:escapeStr( "Manuel's kely \todo mi\o" ) )
CATCH
muestra( oHdo:errorInfo(), "Conexion" )
FINALLY
oHdo:disconnect()
END
msg( ";;;;ESTO ES TODO!!!;;;;;" )
return