Documentation

TSLIBasicRecordDAO
in

Esta interface define los metodos a implementar del DAO comun para manejar modelos simples que basicamente representen una entidad en la persistencia.

Table of Contents

getByCode() Busca basado en un codigo para el caso exista codigo unico, esto es util cuando por ejemplo se agrega , no se tiene aun un id unico y se requiere verificar si el registro existe , en ese caso el id no nos es util. int
get() Busca un basado en su id, util basicamente si no se tiene un codigo unico o en el caso de un update donde ya se conoce el id de existir. int
fetch() Funcion que lee la lista de todos los registros del modelo que el DAO este manejando, basado en los constraits y los datos del modelo. array
remove() Funcion que elimina un registro de la persistencia. int
update() Funcion que actualiza un registro en la persistencia. int
add() Funcion que agrega un registro a la persistencia. int
isDuplicateKeyError() Dado que no existe una manera comun entre las bases de datos para determinar el error por llave duplicada , algunos dan un codigo de error y otros solo un mensaje , este metodo debe ser implementado para cada caso , de ser necesario. bool
isForeignKeyError() Dado que no existe una manera comun entre las bases de datos para determinar el error por lforeign key , algunos dan un codigo de error y otros solo un mensaje , este metodo debe ser implementado para cada caso , de ser necesario. bool
isRecordModifiedError() Dado que no existe una manera comun entre las bases de datos para determinar el error por registro modficado por otra estacion , Se deja a la implementacion del driver final que indique si un registro ha sido modificado. Posiblemente la implementacion default lo haga por comparacion pero esto no es posible si se hace un stored procedure. bool

Methods

getByCode()

Busca basado en un codigo para el caso exista codigo unico, esto es util cuando por ejemplo se agrega , no se tiene aun un id unico y se requiere verificar si el registro existe , en ese caso el id no nos es util.

public getByCode( $code : mixed , &$model : TSLDataModel [, &$constraints : TSLRequestConstraints = NULL ] [, $subOperation : string = NULL ] ) : int
Parameters
$code : mixed

con el unique id del registro

$model : TSLDataModel

repositorio de la respuesta.

$constraints : TSLRequestConstraints = NULL

conteniendo el numero de registros elementos para el order by , filtro etc de la lista.

$subOperation : string = NULL

opcional e indica que sub operacion de lectura deberemos hacer , por ejemplo leer haciendo un join para normalizar datos al cliente.

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
int


DB_ERR_ALL_OK no hay errores
DB_ERR_SERVERNOTFOUND el servidor de base de datos no se ha encontrado.
DB_ERR_CANTEXECUTE Error ejecutando el query.
DB_ERR_RECORDNOTFOUND - No se encontro el registro

get()

Busca un basado en su id, util basicamente si no se tiene un codigo unico o en el caso de un update donde ya se conoce el id de existir.

public get( $id : mixed , &$model : TSLDataModel [, &$constraints : TSLRequestConstraints = NULL ] [, $subOperation : string = NULL ] ) : int
Parameters
$id : mixed

con el unique id del registro

$model : TSLDataModel

repositorio de la respuesta.

$constraints : TSLRequestConstraints = NULL

conteniendo el numero de registros elementos para el order by , filtro etc de la lista, puede ser null

$subOperation : string = NULL

opcional e indica que sub operacion de lectura deberemos hacer , por ejemplo leer haciendo un join para normalizar datos al cliente.

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
int


DB_ERR_ALL_OK no hay errores
DB_ERR_SERVERNOTFOUND el servidor de base de datos no se ha encontrado.
DB_ERR_CANTEXECUTE Error ejecutando el query.
DB_ERR_RECORDNOTFOUND - No se encontro el registro

fetch()

Funcion que lee la lista de todos los registros del modelo que el DAO este manejando, basado en los constraits y los datos del modelo.

public fetch( [ &$record : TSLDataModel = NULL ] [, &$constraints : TSLRequestConstraints = NULL ] [, $subOperation : string = NULL ] ) : array
Parameters
$record : TSLDataModel = NULL

con los datos base para generar la condicion de busqueda.

$constraints : TSLRequestConstraints = NULL

conteniendo el numero de registros elementos para el order by , filtro etc de la lista.

$subOperation : string = NULL

si el caso de fetch de datos tiene sub operaciones que realizar, es comun en el fetch que existan variantes para una misma entidad

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
array

con los registros de salida.

remove()

Funcion que elimina un registro de la persistencia.

public remove( $id : mixed , $versionId : int , $verifiedDeletedCheck : bool ) : int
Parameters
$id : mixed

, representa el valor unico del registro dentro de la base de datos.

$versionId : int

el cual representa la version del registro en la persistencia, debemos recordar que toda base de datos al menos es capaz de mantener un codigo de version de un registro el cual cambia en cada update.

$verifiedDeletedCheck : bool

, si es true verficara si no pudo eliminar por ya estar eliminado el registro. Es usualmente util para el caso de bases de datos que no soporten versionamiento.

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
int


DB_ERR_ALL_OK no hay errores
DB_ERR_SERVERNOTFOUND el servidor de base de datos no se ha encontrado.
DB_ERR_CANTEXECUTE Error ejecutando el query.
DB_ERR_RECORDNOTFOUND - No se encontro el registro

update()

Funcion que actualiza un registro en la persistencia.

public update( &$record : TSLDataModel [, $subOperation : string = NULL ] ) : int

Debe verificar si el registro ha sido modificado o ya no existe, si estuviera modificado el parametro model debe retornar el registro modificado.

Parameters
$record : TSLDataModel
$subOperation : string = NULL

esto puede usarse para indicar que clase de relectura de registro luego del update debe hacerse (llamada a get()). *

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
int


DB_ERR_ALL_OK no hay errores
DB_ERR_SERVERNOTFOUND el servidor de base de datos no se ha encontrado.
DB_ERR_CANTEXECUTE Error ejecutando el query.
DB_ERR_RECORDNOTFOUND - No se encontro el registro
DB_ERR_RECORD_MODIFIED - El registro esta modificado.

add()

Funcion que agrega un registro a la persistencia.

public add( &$record : TSLDataModel [, &$constraints : TSLRequestConstraints = NULL ] [, $subOperation : string = NULL ] ) : int

Debe verificar que el registro no haya sido modificado externamente. De estar modificado , el parametro model debera contener el registro encontrado.

Parameters
$record : TSLDataModel
$constraints : TSLRequestConstraints = NULL

que para este caso podria ser por ejemplo un valor que puedamodificar la forma de agregar o cualquier otro uso.

$subOperation : string = NULL

esto puede usarse para indicar que clase de relectura de registro luego del add debe hacerse (llamada a get()).

Tags
expectedException

\TSLDbException si existe un error no recuperable

Return values
int


DB_ERR_ALL_OK no hay errores
DB_ERR_SERVERNOTFOUND el servidor de base de datos no se ha encontrado.
DB_ERR_CANTEXECUTE Error ejecutando el query.
DB_ERR_RECORDEXIST - El registro ya existe previamente.

isDuplicateKeyError()

Dado que no existe una manera comun entre las bases de datos para determinar el error por llave duplicada , algunos dan un codigo de error y otros solo un mensaje , este metodo debe ser implementado para cada caso , de ser necesario.

public isDuplicateKeyError( $errorCode : int , $errorMsg : string ) : bool
Parameters
$errorCode : int

, El error retornado al ejecutar el query

$errorMsg : string

, el mensaje de error

Return values
bool

TRUE si es llave diuplicada, FALSE de lo contrario

isForeignKeyError()

Dado que no existe una manera comun entre las bases de datos para determinar el error por lforeign key , algunos dan un codigo de error y otros solo un mensaje , este metodo debe ser implementado para cada caso , de ser necesario.

public isForeignKeyError( $errorCode : int , $errorMsg : string ) : bool
Parameters
$errorCode : int

, El error retornado al ejecutar el query

$errorMsg : string

, el mensaje de error

Return values
bool

TRUE si es error de foreign key, FALSE de lo contrario

isRecordModifiedError()

Dado que no existe una manera comun entre las bases de datos para determinar el error por registro modficado por otra estacion , Se deja a la implementacion del driver final que indique si un registro ha sido modificado. Posiblemente la implementacion default lo haga por comparacion pero esto no es posible si se hace un stored procedure.

public isRecordModifiedError( $errorCode : int , $errorMsg : string ) : bool
Parameters
$errorCode : int

, El error retornado al ejecutar el query

$errorMsg : string

, el mensaje de error

Return values
bool

TRUE si es error de registro modificado, FALSE de lo contrario

Search results