AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
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 (<Fuente>.SetMemo.
Tras la llamada a <Fuente>.Modify:
  • se recomienda configurar la gestión de errores:
    WINDEV 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.
    WEBDEV - Código Servidor 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.
    PHP La gestión de los bloqueos no está disponible.
    Java 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.
Ejemplo
// Finds the record
Customer.ReadSeekFirst(Name, "Smith")
 
IF Customer.Found() = 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"
Customer.Modify()
END
// Modify current record of "Customer"
// displayed in a window
Customer.ToFile()
Customer.Modify()
Sintaxis
<Result> = <Source>.Modify([<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.
<Source>: Tipo de fuente especificada
Nombre del archivo de datos, vista HFSQL o consulta utilizada.
<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 (<Fuente>.Read) sea coherente.

Si no se especifica este parámetro (igual a 0 o a la constante hCurrentRecNum), <Fuente>.Modify 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 <Fuente>.RecNum.

Para utilizar el parámetro <Opciones>, se debe especificar el parámetro <Número de registro>.
Hyper File 5.5 Este parámetro no se tiene en cuenta.
PHPOLE DBConectores Nativos Este parámetro debe corresponder al número del registro activo (constante hCurrentRecNum).
Java Acceso con JDBC: Este parámetro debe corresponder al número del registro activo (constante hCurrentRecNum).
<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.
    PHP La gestión de los bloqueos no está disponible.
    Java 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.
Hyper File 5.5 Este parámetro no se tiene en cuenta.
hAffectBrowseEfecto de la modificación en la iteración: La modificación afecta a la iteración.
Por ejemplo, al utilizar la función <Fuente>.ReadNext después de la función <Fuente>.Modify, 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 <Fuente>.Modify 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.
hCheckDuplicatesModo de gestión de duplicados: Verifica los duplicados en esta operación, incluso si la verificación de duplicados está desactivada (función <Fuente>.SetDuplicates).
Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hCheckIntegrityModo 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 <Variable Connection>.SetIntegrity).
Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hFalsifyTimestampGestió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.
hForceIdAutoModo 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.
hIgnoreDuplicatesModo 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 <Fuente>.SetDuplicates).
Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hIgnoreIntegrityModo 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 <Variable Connection>.SetIntegrity).
Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hLockNo
(valor predeterminado)
LModo de bloqueo de Record modificado: Sin bloqeuo: el Record modificado no se bloqueará.
PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hLockReadWriteLModo 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.

PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hLockWriteLModo 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.

PHP Esta constante no está disponible.

Java Acceso con JDBC: Esta constante no está disponible.
hRecalculateIdAutoModo 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.
PHP Esta constante no está disponible.
hSetIdAutoModo 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 <Fuente>.ReadNext después de la función <Fuente>.Modify, 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 <Fuente>.Modify 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.
Hyper File 5.5 Las posiciones de texto se rellenan automáticamente con caracteres de espacio.
Observaciones
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadJavaLenguaje ExternoPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

Gestión de los identificadores de automatic

Por defecto, <Fuente>.Modify no cambia el identificador automatic cuando se utiliza en un Record activo o cruzado (incluso si el identificador automatic fue asignado en el código): se reutiliza el identificador automatic en el archivo de datos.
Las constantes hForceIdAuto y hSetIdAuto permiten modificar el comportamiento predeterminado del identificador automático.
Para obtener más información, consulte Gestionar el identificador automatic durante una modificación.
PHPOLE DBConectores Nativos
  • Si la base de datos genera un identificador automatic, el motor HFSQL mantiene este valor. Si se especifica la constante hForceIDAuto o hSetIDAuto, el motor HFSQL sustituye el valor generado por el valor deseado.
    Observación: la constante hForceIdAuto equivale a hSetIdAuto: el identificador automatic calculado por HFSQL durante la próxima adición será único en el archivo de datos.
  • Si la base de datos no genera ningún identificador de automatic, el motor HFSQL genera el valor y lo asigna al identificador automatic.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadJavaLenguaje ExternoPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

Modificación de los registros borrados o cruzados

Modificar un Record cruzado o un Record borrado habilita de nuevo el Record.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadLenguaje ExternoPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

Conflicto de modificación o de borrado

Los errores de conflicto de modificación o borrado sólo aparecen si se utiliza <Fuente>.Modify en el actual Record. Si se especifica un número de Record, no puede haber conflicto, ya que la Record no fue leída antes de la modificación.
Para obtener más información, consulte Gestión asistida de errores HFSQL.

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"
Customer.Add()    // integrity and duplicate check performed on
// LastName and FirstName if active management
Customer.FirstName = "Mark"
Customer.Modify()   // integrity and duplicate check performed on
// FirstName only if active management
...
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadJavaPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

La versión del archivo de datos después de una modificación

Si el Record fue modificado (sin error de duplicación y sin error de integridad), el número de versión del archivo de datos es modificado. Para get el número de versión, utilice <Fuente>.Version.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadJavaPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5OLE DBConectores Nativos

Gestión de memos binarios

Cuando se modifica una Record, se modifican los memos si es necesario (si la gestión de los memos está habilitada por <Fuente>.SetMemo).
Recordatorio: para inicializar un elemento de memoria binario, utilice <Fuente>.LinkMemo.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadJavaPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenados

Modificación de una Record seleccionada en una consulta

Se puede realizar la modificación de una Record en una consulta:
  • en el resultado de la consulta
  • en los archivos de datos tratados por la consulta (hModifyFile constante utilizada en .ExecuteQuery o .ExecuteSQLQuery). En este caso, la constante hWithFilter se selecciona automáticamente.
Es necesario distinguir dos casos, dependiendo del modo de ejecución de la consulta (con o sin la constante hWithFilter).
Ejecución de la consulta con la constante hWithFilter
  • Sólo se permite la modificación de la actual Record.
  • Si se ejecuta la función para modificar una consulta basada en varios ficheros de datos, la modificación se aplica a los ficheros de datos de relacionado.
  • Se produce un error de WLanguage cuando se modifica el contenido de un elemento calculado.. El contenido de estos artículos se calcula automáticamente al modificar el Record.
Ejecución de la consulta sin la constante hWithFilter
  • Si se ejecuta la función para modificar una consulta basada en varios ficheros de datos, la modificación se aplica a los ficheros de datos de relacionado.
  • Si el Record modificado ya no corresponde a la selección de la consulta, el Record seguirá encontrándose en el resultado de la consulta
  • Se produce un error de WLanguage cuando se modifica el contenido de un elemento calculado.. El contenido de estos artículos se calcula automáticamente al modificar el Record.
Atención:
  • No se permite ninguna modificación en una consulta que utilice grupos o agregados.
  • La gestión de la integridad y de los duplicados no se realiza durante las operaciones en las consultas multiarchivo.: se recomienda utilizar las transacciones para evitar cualquier problema.
WINDEVWEBDEV - Código ServidorJavaPHPAjaxProcedimientos almacenadosOLE DBConectores Nativos

Modificación y bucle de una Record

Si la modificación se realiza durante una iteración, la Record modificada será Visible sólo en la iteración actual. Si se han definido otras iteraciones en esta base de datos, la Record modificada será Visible una vez que se hayan reiniciado estas iteraciones.
La utilización de la constante hAffectBrowse STRIMEULB ralentiza la modificación porque se actualiza la consulta o tabla.
ATENCIÓN: Si se utiliza <Fuente>.Modify 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.
WINDEVWEBDEV - Código ServidorConectores Nativos

xBase

<Fuente>.Delete y <Fuente>.Cross tienen el mismo efecto: el Record se cruza pero no se borra. Por lo tanto, la Record puede volver a activarse mediante <Fuente>.Modify. En este caso, la función <Fuente>.State devuelve la constante hStateCrossed en un registro eliminado (y no la constante hStateDel).
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 25
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 20/06/2023

Señalar un error o enviar una sugerencia | Ayuda local