|
|
|
|
- Gestión de los identificadores de automatic
- Modificación de los registros borrados o cruzados
- Conflicto de modificación o de borrado
- Gestión de duplicados e integridad
- La versión del archivo de datos después de una modificación
- Gestión de memos binarios
- Modificación de una Record seleccionada en una consulta
- Modificación y bucle de una Record
- xBase
HModify (Función)
No disponible con este tipo de conexión
Modifica el registro especificado o el que esta en la memoria en el archivo de datos (consulta o vista). Los índices que corresponden a las claves utilizadas en la archivo de datos se actualizan automáticamente. Los memos se añaden (si es necesario) si la gestión de los memos está activada ( HSetMemo. Tras la llamada a HModify: - se recomienda configurar la gestión de errores:
WINDEV propone una gestión de errores automatic para los siguientes tipos de errores: Error de duplicados, error de integridad, error de contraseña, error de conflicto de modificación, error de estado durante el conflicto de modificación y error de bloqueo. Para obtener más información, consulte Gestión asistida de errores HFSQL. Se recomienda comprobar que no se haya generado ningún error: Error duplicado, error de integridad, error de contraseña, error de conflicto de modificación y error de estado durante el conflicto de modificación.. Para obtener más información, consulte Gestión asistida de errores HFSQL. - si la gestión de duplicados está activada y el archivo de datos contiene una clave única, la función HErrorDuplicates devuelve True si el valor de la clave modificada no es único. El Record no se modifica.
- si se produce un problema de bloqueo (intentar modificar un registro bloqueado), la función HErrorLock devuelve True y el registro no se modifica.
La gestión de los bloqueos no está disponible. Acceso con JDBC: La gestión de las cerraduras no está disponible para las bases de datos a las que accede el JDBC. - el número del actual Record no se modifica. Por Default, la iteración actual no se ve afectada.
Observación: Esta función puede ser usada en un archivo de datos, una vista HFSQL o una consulta.
// Finds the record HReadSeekFirst(Customer, Name, "Smith") IF HFound() = True THEN // Modify a record in a data file // (record described through programming) Customer.FirstName = "Vince" Customer.City = "San Francisco" Customer.Zip = "94102" Customer.Country = "USA" HModify(Customer) END
// Modify current record of "Customer" // displayed in a window ScreenToFile() HModify(Customer)
Sintaxis
<Result> = HModify([<Data file> [, <Record number> [, <Options>]]])
<Result>: booleano - True si se modificó el registro,
- False si se produce un problema (error de integridad, duplicados, etc.): el Record no se modifica. La función HError permite identificar el error.
<Data file>: Cadena de caracteres opcional Nombre del archivo de datos, vista HFSQL o consulta utilizada. Si no se especifica este nombre, la función HModify utilizará el último archivo de datos utilizado por la última función HFSQL (que empieza por "H"). <Record number>: Entero opcional Número de la Record a modificar. El Record cargado en la memoria se reescribe en el Record especificado. Si este número es mayor que el número total de registros en el archivo de datos, se crearán registros intermedios borrados para que la lectura secuencial del archivo de datos (HRead) sea coherente.
Si no se especifica este parámetro (igual a 0 o a la constante hCurrentRecNum), HModify modificará el registro actual en el archivo de datos.
PRECAUCIÓN: No confundir el número de Record con el identificador automático asociado al Record. En la mayoría de los casos, estos dos números no son idénticos. El número Record es devuelto por HRecNum.
Para utilizar el parámetro <Opciones>, se debe especificar el parámetro <Número de registro>.
<Options>: Constante opcional Configura:- el efecto de la modificación en la iteración actual,
- el modo de cálculo del identificador automático,
- el modo de bloqueo aplicado a la Record modificada. Si no se especifica ninguna constante de bloqueo, la Record modificada se desbloquea.
La gestión de los bloqueos no está disponible. Acceso con JDBC: La gestión de las cerraduras no está disponible para las bases de datos a las que accede el JDBC.
- la gestión de duplicados,
- la gestión de la integridad.
Observación: Para usar este parámetro, <Record número> debe ser necesariamente especificado.
| | hAffectBrowse | Efecto de la modificación en la iteración: La modificación afecta a la iteración. Por ejemplo, al utilizar la función HReadNext después de la función HModify, se establece la posición en el registro que se encuentra después del registro modificado (teniendo en cuenta los nuevos valores).ATENCIÓN: En todos los casos (utilizando o no la constante hAffectBrowse): si se utiliza HModify en una iteración y el valor del elemento de navegación cambia, el record actual puede volver a leerse en el resto de la iteración. Al modificar el elemento de exploración se actualiza la clave del índice del archivo. Esta modificación se tiene en cuenta al leer los siguientes registros.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault. | hCheckDuplicates | Modo de gestión de duplicados: Verifica los duplicados en esta operación, incluso si la verificación de duplicados está desactivada (función HSetDuplicates). Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
| hCheckIntegrity | Modo de gestión de la integridad: Verifica la integridad de la operación, incluso si la verificación automática de la integridad está desactivada (función HSetIntegrity). Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
| hFalsifyTimestamp | Gestión de los elementos de la marca de tiempo: Por defecto, un elemento Timestamp contiene la fecha y la hora de creación/modificación de la Record. Esta fecha/hora se calcula automáticamente. Esta constante impide que se actualice el elemento Timestamp: se mantendrá el último valor de la Record. | hForceIdAuto | Modo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros. El identificador corresponde a:- el valor asignado al elemento mediante programación (por ejemplo, CUSTOMERID = 7)
- el valor predeterminado del identificador que se especificó en el editor de análisis (si el archivo de datos acaba de abrirse, sin que se haya leído ningún registro)
- el valor del identificador en la memoria (valor del identificador del último registro leído en el archivo de datos).
Después de agregar el registro, se calculará el siguiente identificador automático calculado por el motor HFSQL, sin tener en cuenta el valor agregado con hForceIdAuto. Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage. | hIgnoreDuplicates | Modo de gestión de duplicados: No comprueba la existencia de duplicados para esta operación, incluso si la verificación automática de duplicados está activada (función HSetDuplicates). Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
| hIgnoreIntegrity | Modo de gestión de la integridad: Ignora la verificación de la integridad en esta operación, incluso si la verificación automática de la integridad está activada (función HSetIntegrity). Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
| hLockNo (valor predeterminado) | LModo de bloqueo de Record modificado: Sin bloqeuo: el Record modificado no se bloqueará.
| hLockReadWrite | LModo de bloqueo de Record modificado: Bloqueo de lectura/escritura: el Record modificado será bloqueado en lectura/escritura. Este registro no puede ser leído ni modificado por otras aplicaciones. Solo la aplicación actual puede modificarlo, leerlo o desbloquearlo.
| hLockWrite | LModo de bloqueo de Record modificado: Bloqueo de escritura: el Record modificado se bloqueará en modo de escritura. Otras aplicaciones pueden leer el registro pero no modificarlo. Solo la aplicación en curso podrá modificarlo o desbloquearlo.
| hRecalculateIdAuto | Modo de cálculo del identificador automático: El identificador automático del Record será recalculado durante la operación de escritura. Esta constante tiene prioridad sobre las constantes hForceIdAuto y hSetIdAuto.
| hSetIdAuto | Modo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros: el valor del identificador será el que se almacena al agregar un registro. El siguiente valor del identificador calculado por el motor HFSQL corresponderá al valor más grande del identificador en el archivo +1. Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage. | hWriteDefault (valor predeterminado) | Efecto de la modificación en la iteración: La modificación no afecta a la iteración actual. Por ejemplo, al utilizar la función HReadNext después de la función HModify, se establece la posición en el registro que se encuentra después del registro que estaba activo antes de la modificación.
ATENCIÓN: Si se utiliza HModify en una iteración y el valor del elemento de navegación cambia, el Record actual puede ser leído de nuevo en el resto de la iteración. Al modificar el elemento de exploración se actualiza la clave del índice del archivo. Esta modificación se tiene en cuenta al leer los siguientes registros.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault. |
Observaciones Gestión de duplicados e integridad Las comprobaciones de integridad y duplicación se realizan sobre las claves para las que: - se habilita una comprobación,
y - el valor del artículo se modifica en relación con el Record que se encuentra en el archivo de datos.
Ejemplo:
... Customer.LastName = "TUBE" Customer.FirstName = "Milo" HAdd(Customer) // integrity and duplicate check performed on // LastName and FirstName if active management Customer.FirstName = "Mark" HModify(Customer) // integrity and duplicate check performed on // FirstName only if active management ...
Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|