Bueno Pablo, yo uso algo como lo siguiente:
****************************************************************************
***************************
DEFINE CLASS Pagos AS Custom
****************************************************************************
***************************
NumeroError = 0
DescripcionError = ""
* nResultado = THISFORM.oPagos.Alta(cComprobante, dFechaPago,
nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo)
****************************************************************************
***************************
PROCEDURE Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato,
nDescuento, cDescripcion, cNumeroRecibo)
****************************************************************************
***************************
* Recibe las variables y llama al procedimiento almacenado
SP_Alta_PAGOS
*
LOCAL nResultado
nResultado = -1
*
=SQLSETPROP(oAplicacion.Conexion, "Transactions", 2)
*
TEXT TO cInstruccionSql NOSHOW PRETEXT 2
EXECUTE SP_Alta_Pagos @CodigoContrato =
?cCodigoContrato,
@CodigoFormaPago =
?cCodigoFormaPago,
@Comprobante =
?ALLTRIM(cComprobante),
@FechaPago
=?DTOC(dFechaPago),
@Importe =?nImporte,
@Descuento =?nDescuento,
@Descripcion =?cDescripcion,
@NumeroRecibo =?cNumeroRecibo,
@CodigoUsuario
=?oAplicacion.CodigoUsuario
ENDTEXT
*
=SQLPREPARE(oAplicacion.Conexion, cInstruccionSql)
*
nResultado = SQLEXEC(oAplicacion.Conexion)
*
IF nResultado < 0
THIS.ParseaError("ALTA Pagos")
=SQLROLLBACK(oAplicacion.Conexion)
=SQLSETPROP(oAplicacion.Conexion, "Transactions", 1)
RETURN -1
ELSE
nResultado = 1
ENDIF
ETC, ETC, ETC
O bien, para traer un cursor con un listado de PAGOS:
****************************************************************************
***************************
PROCEDURE TraerTodos(sNombreCursor)
****************************************************************************
***************************
LOCAL nResultado
nResultado = -1
*
TEXT TO cInstruccionSql TEXTMERGE NOSHOW PRETEXT 2
SELECT FechaPago, CodigoPago, Comprobante, Descripcion,
Descuento, Importe, NumeroRecibo FROM Pagos
ENDTEXT
*
nResultado = SQLEXEC(oAplicacion.Conexion, cInstruccionSql,
sNombreCursor)
*
IF nResultado < 0
THIS.ParseaError
ENDIF
*
RETURN nResultado
*
ENDPROC
Estoy mil por cien seguro que el framework es muchísimo mejor
pero yo así
saqué las papas del fuego, desarrollé todo rapidito y eficientemente.
Saludos.