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
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
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
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
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
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
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